\1的用法

jxwangjm 2013-10-09 10:38:34
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不行
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxwangjm 2013-10-09
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
/(.)\1/g 中 \1 表示第一对圆括号中匹配的内容 /(.)\2/g 中 \2 表示第二对圆括号中匹配的内容,但是你并没有第二对圆括号
所以 test18应该改为/(.)\1\1/g 多谢二位
天际的海浪 2013-10-09
  • 打赏
  • 举报
回复
\1是对获取的子匹配的引用。其中1表示第1个子匹配 /(.)\2/;中只有一个子匹配,你却要引用第2个子匹配,当然不对了
xuzuning 2013-10-09
  • 打赏
  • 举报
回复
/(.)\1/g 中 \1 表示第一对圆括号中匹配的内容 /(.)\2/g 中 \2 表示第二对圆括号中匹配的内容,但是你并没有第二对圆括号

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧