最少9个数字的正则表达式

时间:2013-05-15 11:41:45

标签: regex

我正在尝试将javascript正则表达式匹配:

  • 必需:9个或更多号码。
  • 可选:破折号,正斜杠,加号和空格字符。
  • 禁止:任何其他角色

到目前为止我已经

^[0-9-+\/\s]{9,}$

这个(我认为)的唯一问题是它会计算非数字允许的字符数,以达到最小值9.

如何修改它以便只计算数字达到最小值9?

4 个答案:

答案 0 :(得分:7)

如果你想在一个RE中解决这个问题(不一定推荐,但有时候很有用):

^[-+\/\s]*([0-9][-+\/\s]*){9,}$

或者,如果您希望第一个和最后一个字符为数字:

^[0-9](^[-+\/\s]*[0-9]){8,}$

那是:一个数字,然后是八个或更多个可选字符的运行,每个字符以数字结尾。

答案 1 :(得分:3)

您可以使用预测检查是否有9位或更多位数

^(?=(\D*\d){9,})[\d/+ -]+$
 --------------
         |
         |->match further only if there are 9 or more digits anywhere

^([/+ -]*\d){9,}[/+ -]*$

答案 2 :(得分:1)

^([0-9][-+\/\s]*){9,}$应该这样做。

答案 3 :(得分:0)

简单的预见

尝试这种模式:

^(?=([^\d]*\d){9,})[0-9-+\/\s]*$