如何在数字(十进制可能低于)文本框中限制单个零?文本框可以接受任何数字,但不应只接受零或“0.##”作为值。
例如:“900.55”、“200.00”有效,“0”、“0.105”无效。
我试过^[1-9]\d\.?\d[0-9]*
但它接受“0”和“0.##”
您快到了。
^[1-9][0-9]*(\.[0-9]+)?$
输入必须
笔记:
3.
。如果您不希望这样,请将最后一个替换+
为*
.\d
而不是[0-9]
. 我使用后者来保持一致[1-9]
并保持简单。我认为这样做会更简单:
float result;
return float.TryParse(textBox1.Text, out result) && result < 1;
如果文本框只接受有效数字,而您只想断言它 > 0。那么您真正需要的是
^[1-9]
或者如果允许尾随前缀零
^0*[1-9]
我遇到了同样的情况并解决了这个问题。试试看。
@"[^0]*[0-9].\d{2}$
您也可以使用否定的前瞻来编写它:
^(?!0\b)\d+(\.\d*)?$
这有一个额外的好处,就是接受前面带有0
022 之类的数字。