正则表达式匹配特定长度的特定数字组?

时间:2012-03-11 02:54:24

标签: javascript regex

我发现了这个:Regex to match digits of specific length但是它谈到了Python。我希望能够获得一组特定长度的随机数。因此,如果我167691#15316243它将匹配15316243。我不知道如何实现这一点。现在我有new RegExp('[0-9]+', "g");匹配一组数字很好,但现在我意识到我有一些时间,当我有一个以上的组,我只想要一组八个数字。

3 个答案:

答案 0 :(得分:15)

[0-9]+ - Matches one or more numbers
[0-9]{8} - Matches exactly 8 numbers.
[0-9]{8,10} - Matches between 8 and 10 numbers.
[0-9]{8,} - Matches 8 or more numbers.
[0-9]* - Matches zero or more numbers.
[0-9]? - Matches zero or one number.

答案 1 :(得分:11)

您可以使用{}。

指定匹配集的长度

例如:[0-9]{8}

将匹配0到9之间的任何数字,特定长度为8个字符。

您还可以指定最小/最大范围,而不是强制特定的legnth。因此,如果您希望min为4且最多为8,则示例将更改为:[0-9]{4,8}

答案 2 :(得分:2)

简单地将重复数量放在大括号中:

"167691#15316243".match(/\d{8}/g);

这是小提琴:http://jsfiddle.net/3r5vd/


我建议您阅读this article(向下滚动到限制重复部分)。

这是一个引用:

  

现代正则表达式风格[...]有一个额外的重复运算符,允许您指定令牌可以重复的次数。语法为{min,max},其中min是指示最小匹配数的正整数,max是等于或大于min的整数,表示最大数量比赛如果逗号存在但省略max,则最大匹配数为无限。因此{0,}*相同,{1,}+相同。
  省略逗号和最大值会告诉引擎完全重复min次令牌。