3

这就是我现在所拥有的:

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

我的问题是我希望能够在逗号前后添加多个数字。

例子:

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

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

4

3 回答 3

9

我建议如下:

/^\d+,\d+$/

'匹配前面的+项目一次或多次。

参考:

于 2012-07-23T15:17:26.797 回答
4

使用+符号,并删除[]周围的括号,(它们不是必需的):

^[0-9]+(,[0-9]+)?$
  //  ^-------^---------here they are
于 2012-07-23T15:17:02.890 回答
1

您有两个正则表达式主中继器,第一个是*,表示“重复零次或多次”。第二个是+说“重复一次或多次”。

在这种情况下,您需要将整数值和十进制值重复一次或多次。所以你可以试试:

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

所以它将验证:

  0
  0123
  1,12
  1,0
  1,12340

但不会验证:

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

尖端:

  • 您只能替换[0-9]\d. 意思是一样的;
  • 您不需要组逗号,只需使用,代替[,]. 您仅将其用于多种可能性,例如接受逗号和点:[,\.]

按照提示,您可以尝试:

  ^\d+(,\d+)?$
于 2012-07-23T15:21:39.807 回答