代碼如下:'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下運行??偨Y下結論:每個反向引用都由一個編號或名稱來標識,并通過“\編號”表示法進行引用,外面的組的編號靠前。也就是說引用分組是編號排列是從外到內編排?;诖死碚?,就可以很好地解釋代碼的運行結果。
如何理解javascript正則“反向引用”
一只名叫tom的貓
2019-03-21 18:15:34