function regTest (reg, raw) { console.log(`${raw} => ${reg.test(raw)}`)}regTest(/((\d)\d\1){2}/, '31312');regTest(/((\d)\d\1){3}/, '31313');輸出結果:31312 => true31313 => false怎么理解第一次調用返回true,第一次返回true,好理解,有兩次匹配,313、131第二次返回false,我的理解有三個匹配的313、131、313 ,為什么不返回true?這里理解錯了,實際上\1表示的是(\d)\d)而不是(\d),捕獲分組時,按照括號出現的順序從左到右標記,這樣就能理解了。
對正則表達式量詞的理解
瀟湘沐
2019-02-07 18:15:49