一个js正则表达式exec的问题
如下面代码:
var str = '12345678';
var reg = /(\d)(?=(\d{3})+$)/g; // (?=)正向肯定预查
var result = reg.exec(str); //["2", "2", "678", index: 1, input: "12345678", groups: undefined]
result数组的第三个元素返回第三个分组匹配的结果,但是为什么它的值是678而不是345或者345678?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
(\d{3})+
+
表示前面的 group 可以重复匹配多次。最终结果里的 match group 是 最后一次 匹配的结果。想要
345678
的话,可以改成((?:\d{3})+)
你都{3}限制3位了,肯定就只有3位啊