我正在尝试在ASP.NET中编写正则表达式来测试以下数值:
1 valid 1.23 valid 12.45 valid 123.01 valid 0.56 valid 012.89 valid 0.123 invalid 1. invalid 1.1 invalid 1234 invalid 0 invalid
我创建了以下正则表达式来满足以上所有要求,除非用户提供单个0。
^[0-9]{1,3}(\.[0-9]{2})?$
我尝试扩展表达式以防止单个0:
^(?!0{1})[0-9]{1,3}(\.[0-9]{2})?$
这样可行,但0.56无效。我无法确定如何测试单个0,但如果存在其他数字则忽略它。
答案 0 :(得分:1)
借助:Regular Expression to accept decimal numbers but not single 0
^((?=.*[1-9])[0-9]{1,3}(\.[0-9]{2})?)$
经http://rubular.com/r/hm3FE5pLFd验证
编辑:请注意,此表达式与0.00
不匹配。