为什么使用js的.replace()方法时遇到的问题?

图片描述
图片描述
第一个中得到'a','b,第二个得到的是 John Doe
这些js中的$1,$2代表什么意思?第二个加一个逗号就把一个正则变两个了吗?
不知是怎么实现的?

阅读 2.8k
1 个回答

这些js中的$1,$2代表什么意思?

$1,$2 指的是对括号的匹配内容的反向引用,你可以简单理解()里面的是子表达式,$n就是第n个括号里面的匹配内容

第二个加一个逗号就把一个正则变两个了吗?

起作用的是括号,而不是逗号,逗号就是一个普通字符

不知是怎么实现的?

第一个表达式的原因在于g,就是会将匹配全部符合规则的内容
也就是说"a"符合()子表达式,"b"也符合()子表达式,其实是执行了2次replace
第二个表达式是
Doe符合第一个()子表达式,John符合第二个()子表达式,其实是执行了1次replace

更多可以看看http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题