使用逗号分隔符对数字进行正则表达式验证

时间:2010-08-11 06:56:51

标签: jquery regex validation

需要正则表达式来使用逗号分隔符验证数字。 1,5,10,55 有效但 1 ,,,, 10 无效。

3 个答案:

答案 0 :(得分:14)

这应该这样做:

^\d+(,\d+)*$

正则表达式相当简单:\d+是第一个数字,后跟可选的逗号和更多数字。

您可能希望在合适的地方投放\s*,或在验证前删除所有空格。

  • 要允许否定号,请将\d+替换为[+-]?\d+
  • 要允许分数:将\d+替换为[+-]?\d+(?:\.\d+)?

答案 1 :(得分:9)

以下是我们将要使用的正则表达式的组件:

  • \d是数字字符类
  • 的简写
  • +是一个或多个重复说明符
  • *是零或多重复说明符
  • (...)执行分组
  • ^$分别是行锚点的开头和结尾

我们现在可以编写我们需要的正则表达式:

^\d+(,\d+)*$

那是:

from beginning...
|    ...to the end
|          |
^\d+(,\d+)*$              i.e. ^num(,num)*$
 \_/  \_/ 
 num  num

请注意,*表示只允许一个号码。如果您坚持至少两个号码,请改用+。您也可以将\d+替换为另一种模式,以允许例如标志和/或小数部分。

参考


高级主题:优化

您可以选择使用括号非捕获来提高性能:

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

如果味道支持它,你可以在这种情况下重复所有重复占有

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

参考

答案 2 :(得分:0)

^[0-9]*(,){1}[0-9]*/

试试这个