Javascript RegExp查找数字分组

时间:2016-07-23 02:42:28

标签: javascript

我尝试学习Javascript RegExp并在某处获得此RegEx:

"1234567890".match(/(\d{3})+(?!\d)/g) 
["234567890"] //result from log

我无法理解为什么会这样。任何帮助解释这将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

正则表达式匹配数字组,条件是组长度必须是3的倍数,并且尾随该组的字符不能是数字。

这是它的工作原理:

(\d{3})        // match exactly 3 digits
       +       // 1 to n times
        (?!\d) // Negative lookahead - assert that the next character is not a digit

More about lookaheads.

在您的测试字符串中,唯一可能的匹配是从match()调用返回的匹配。

请参阅以下代码段以获取另一个示例:



var matches = "1234foobar5678901".match(/(\d{3})+(?!\d)/g);
console.log(matches); // ["234", "678901"]