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

铲屎官大人
  • 2.4k

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

回复
阅读 2.2k
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

宣传栏