如何在数字(Decimal may alow)文本框中限制单个零?文本框可以接受任何数字,但它不应该只接受零或“0。##”作为值。
例如:“900.55”,“200.00”有效但“0”和“0.105”无效。
我尝试了^[1-9]\d\.?\d[0-9]*
但接受了“0”和“0。##”
答案 0 :(得分:6)
你快到了。
^[1-9][0-9]*(\.[0-9]+)?$
输入必须
注意:
3.
。如果您不想这样做,请将最后一个+
替换为*
。\d
代替[0-9]
。我使用后者与[1-9]
保持一致并保持简单。答案 1 :(得分:1)
我认为你很接近,但是在组中包含小数和后续数字可能更容易,并使整个组只允许这样一次:
^[1-9][0-9]*(\.\d*)?
此外,这是一个有用的网站,用于测试regular expressions。
答案 2 :(得分:1)
我认为这样做会更简单:
float result;
return float.TryParse(textBox1.Text, out result) && result < 1;
答案 3 :(得分:0)
如果文本框只接受有效数字,并且您要声明的所有内容都是&gt;你真正需要的只是
^[1-9]
或者是否允许尾随前缀为零
^0*[1-9]
答案 4 :(得分:0)
您也可以使用否定前瞻来编写它:
^(?!0\b)\d+(\.\d*)?$
这有一个额外的好处,就是接受前面的0
的数字,如022。
答案 5 :(得分:0)
我遇到了同样的情况并解决了这个问题。 尝试一下。
@“[^ 0] * [0-9]。\ d {2} $