使用REGEx允许零数字

allow zero numbers with REGEx

我有一个对正数有效的regexp,但希望它在用户刚输入0时也能正常工作,如何做到这一点?我试着学会怎么做,但到目前为止还没有成功。

regexp:^(?!(?:0|0\.0|0\.00)$)[+]?\d+(\.\d|\.\d[0-9])?$

编辑我很抱歉可能不够清楚

我希望它接受所有的正数到小数点后2位,但我也希望它只接受数字0

像:零零零一点二五一点二不接受-0.01以下的任何内容


根据你的要求,我提出了:

^\+?\d*(?:\.\d{1,2})?$

这是你要找的吗?

上面的正则表达式将所有正小数匹配到两个带或不带"+"符号或前导整数的小数位,下面是一些示例不匹配的情况。

1.324<BR/>3、
- 23.1


我认为你有一个问题,因为前面的负面展望,看看这个:

1
[+]?\d+(\.\d|\.\d[0-9])?

但您可以进一步简化它,如下所示:

1
(?:\d*\.)?\d+


你可以去掉你的负面展望:

1
^[+]?\d+(\.\d\d?)?$

如果你想强制-为负数,而不是+为正数,那么^-?[0-9]+$为负数。

^-?[0-9]+.?[0-9]*$表示小数。