2012-07-23 55 views
2

这就是我现在所拥有的:正则表达式匹配数逗号数

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

我的问题是,我希望能够之前,我的逗号后面添加一个以上的数字。

例子:

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

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

+1

你想的'123'后缀是可选的? – 2012-07-23 15:21:27

回答

3

使用+迹象,并且还去掉周围,[]括号(他们不是neccessary):

^[0-9]+(,[0-9]+)?$ 
    // ^-------^---------here they are 
1

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

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

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

因此,这将验证:

0 

    1,12 
    1,0 
    1,12340 

但不是将验证:

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

提示:

  • 您可以将其替换[0-9]只有\d。这意味着同样的事情;
  • 您不需要群组逗号,只需使用,而不是[,]。您只能用于多种可能性,如接受逗号和点:[,\.];

继提示,你可以尝试:

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