我试图通过javascript中的正则表达式找到多个连续数字
让我说我得到了:
12345abc123
我想知道有多少次我有3个或更多连续数字。现在我正在使用:
/\d{3}/g
但这给了我:123,123和我想拥有:123,234,345,123
如何更改我的正则表达式以获得我想要的?
答案 0 :(得分:4)
您可以使用此正则表达式:
/(?=(\d{3}))/g
<强>代码:强>
var re = /(?=(\d{3}))/g;
var str = '12345abc789';
var m;
while ((m = re.exec(str)) != null) {
console.log(m[1]);
}
<强>输出:强>
123
234
345
789
答案 1 :(得分:2)
你必须使用预见断言:
var str = '12345abc123',
re = /\d(?=(\d\d))/g;
while ((match = re.exec(str)) !== null) {
// each match is an array comprising
// - the first digit and
// - the next two digits
console.log(match.join(''));
}
如果跟着另外两个数字匹配一个数字;断言使引擎在第一个匹配的数字后立即开始下一次搜索。
答案 2 :(得分:0)
这是你正在寻找的正则表达式:
/(?=(\d{3}))/g