分组的概念
分组就是在正则表达式中用()包起来的内容代表了一个分组,如下:
var reg=/([0-9]{3})([a-z]{2})/ var str="123ab" console.log(str.match(reg))//{"123ab","123","ab"}
上述为
捕获性分组
被正则表达式捕获(匹配)到的字符串会被暂存起来,其中,由分组捕获到的字符串会从1开始编号,我们可以引用这些字符串:
console.log(RegExp.$1);//123 console.log(RegExp.$2);//ab
补充:$1,$2...$9是RegExp对象的静态属性。如果表达式模式中有括起来的子匹配,$1...$9表示第1个到第9个子匹配所捕获到的内容,如果有超过9个以上的子匹配,$1…$9属性分别对应最后的9个子匹配。
非捕获性分组(?:)
只是为了分组并不需要捕获
var reg=/(?:[0-9]{3})([a-z]{2})/ var str="123ab" console.log(str.match(reg))//{"123ab","ab"}