正则表达式匹配数字逗号数字

3

这是我现在拥有的内容:

^[0-9]([,][0-9])?$

我的问题是我想在逗号前后添加多个数字。

例如:

1,12
12,12
123,12
12,123

以上所有数字应该是有效的。

1
你想要“,123”后缀是可选的吗? - Matt Ball
3个回答

9

4
使用加号+,同时删除[ ]括号中的,(它们不是必要的):
^[0-9]+(,[0-9]+)?$
  //  ^-------^---------here they are

1
你有两个正则表达式主重复器,第一个是*,表示“重复零次或多次”。第二个是+,表示“重复一次或多次”。
在这种情况下,您需要重复一次或多次整数值和小数值。所以你可以试试它:
  ^[0-9]+([,][0-9]+)?$

这样它就会验证:

  0
  0123
  1,12
  1,0
  1,12340

但是不会通过验证:

  1,
  ,0
  -1,0
  1e-10

提示:

  • 您可以将[0-9]替换为\d。它们的意思是相同的;
  • 您不需要使用组合的逗号,只需使用逗号,代替[,]即可。您只在有多个可能性时使用它,例如接受逗号和点:[,\.]

根据这些提示,您可以尝试:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接