我需要一个满足这些规则的正则表达式:
有效数字样本:
0
2
0.4
78784764.23
45.232
无效数字样本:
-2
123456789522144
84.2564
我在这里找到了一个例子(http://forums.asp.net/t/1642501.aspx)并设法修改了一点,将0作为最小值,99999999999.999作为最大值并接受只有DOT作为小数点。这是我修改过的正则表达式:
^\-?(([0-9]\d?|0\d{1,2})((\.)\d{0,2})?|99999999999.999((\.)0{1,2})?)$
但是,我仍然有3小数点的问题,它相当不稳定。任何人都可以帮我这个,因为在谈到正则表达式时我基本上是文盲吗?
感谢。
编辑: 我正在使用ASP Regular Expression Validator
答案 0 :(得分:14)
这并不困难:
^[0-9]{1,11}(?:\.[0-9]{1,3})?$
<强>解释强>
^ # Start of string
[0-9]{1,11} # Match 1-11 digits (i. e. 0-99999999999)
(?: # Try to match...
\. # a decimal point
[0-9]{1,3} # followed by one to three digits (i. e. 0-999)
)? # ...optionally
$ # End of string