正则表达式在javascript中查找连续数字

时间:2014-07-23 07:41:06

标签: javascript regex

我试图通过javascript中的正则表达式找到多个连续数字

让我说我得到了:

12345abc123

我想知道有多少次我有3个或更多连续数字。现在我正在使用:

/\d{3}/g

但这给了我:123,123和我想拥有:123,234,345,123

如何更改我的正则表达式以获得我想要的?

3 个答案:

答案 0 :(得分:4)

您可以使用此正则表达式:

/(?=(\d{3}))/g

Online Regex Demo

<强>代码:

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