RegEx检测数字之间的空格,但逗号之间的空格是可以的

时间:2014-07-08 15:39:17

标签: regex angularjs

我正在使用angularjs并且拥有以下REGEX

ng-pattern = "/^[0-9,\b\s]+$/"

这个正则表达式在某种程度上起作用,虽然我无法找到如何改变它来检测数字之间的空白区域,但同时允许逗号之间有空格。

123                     // is ok
123,  345,   5453       // is ok
123   345,   5453       // is not ok
123,   345,   5453,     // is not ok
,123,   345,   5453     // is not ok

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

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

^(?:\d+(?:, *|))*\d+$

Online Regex Demo

答案 1 :(得分:1)

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

^(?:\d+,\s*)+\d+$

http://regex101.com/r/xE2sQ3/1

123,  345,   5453    // OK
123   345,   5453
123,  345,   5453    // OK
123,  345   5453,

答案 2 :(得分:1)

这个正则表达式

^\d{1,3}(,\s*\d\d\d)*$

匹配

  • 文字开头,然后是
  • 一组1-3位数字,然后是
  • 零个或多个组,每个组由
    • 逗号,然后是
    • 可选空格,后跟
    • 一组3位数字 - 跟随文本结尾

这就是说...任何以传统的分组分隔形式编写的数字,使用逗号作为组分隔符,并允许在逗号后面跟踪空格:

1
12
123
1,234
12, 123,456

所有匹配,但

之类的东西
123456
123,4
1 234

如果您想使组分隔符可选,则可以轻松修改:

^\d{1,3}((,\s*)?\d\d\d)*$

这也会匹配

之类的数字
12345
12, 3456