JS 正则表达式关于RegExp.$x 的疑问
var sToMatch = 'Important word is the last one.'
var reLastWord = /(\w+)\.$/
reLastWord.test(sToMatch)
console.log(RegExp.$1)
上面这段代码的结果为什么是'one' 而不是'one.'? 这是JS的bug还是?
从执行情况来看,应该是匹配到了'one.', 但RegExp的变量却没有把.这个符号保存在结果里.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
$
是捕获括号内匹配的/(\w+)\.$/
匹配到one.
,其中one.
是整个匹配到的one
是()
匹配到的这样就好了,正则里面的()代表是一个元组,你的
$1
获取的是()里面的元素,所以你只要把\.
加到()里面就好了这个
$1
是对应正则里面的第一个集合()
,也就是括号里面的部分,$2
就是第二个集合()
,你的\.
在集合括号外面。