代码如下:'aaabbbcccdddeeefff'.match(/[abc]\1/g);//null'aaabbbcccdddeeefff'.match(/([abc])\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc])\1)\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc])\1)\2/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/((([abc])\1)\2)\3/g);//["aaa", "bbb", "ccc"]第一行可以验证出,反向引用针对的是分组。第二三行结果,符合预期。后面的就不懂了。。。求解释,为什么??这个分组,针对的是嵌套分组,还是平行分组(/()()()/)?按我的理解,第四行结果应当是:["aaaa", "bbbb", "cccc"],但给的测试串没有四个的,所以应当匹配无果,null。ps:运行结果都是在chrome版本 35.0.1916.153 m下运行。总结下结论:每个反向引用都由一个编号或名称来标识,并通过“\编号”表示法进行引用,外面的组的编号靠前。也就是说引用分组是编号排列是从外到内编排。基于此理论,就可以很好地解释代码的运行结果。
添加回答
举报
0/150
提交
取消