日期:2014-05-16  浏览次数:21243 次

\1的用法
function test17()
{
var r1=/(.)\1/g;
var str1="baaaabbc";
var arr;
   while ((arr = r1.exec(str1)) != null)
{
window.alert(arr.index + "-" + arr.lastIndex + "\t" + arr);
}    
}
function test18()
{
var r1=/(.)\2/g;
var str1="baaabbbc";
var arr;
   while ((arr = r1.exec(str1)) != null)
{
window.alert(arr.index + "-" + arr.lastIndex + "\t" + arr);
}    
}

为何test17能够得到正确结果,而test18不行

------解决方案--------------------
/(.)\1/g
中 \1 表示第一对圆括号中匹配的内容

/(.)\2/g
中 \2 表示第二对圆括号中匹配的内容,但是你并没有第二对圆括号

------解决方案--------------------
\1是对获取的子匹配的引用。其中1表示第1个子匹配

/(.)\2/;中只有一个子匹配,你却要引用第2个子匹配,当然不对了