不应该允许单个零或0

本文关键字:许单个 不应该 | 更新日期: 2023-09-27 18:10:45

如何在数字(十进制可能允许)文本框中限制单个零?文本框可以接受任何数字,但不应该只接受零或"0"。##"作为值

例如:"900.55","200.00"合法,但"0","0.105"不合法。

我尝试了^[1-9]'d'.?'d[0-9]*,但它接受"0"answers"0.##"

不应该允许单个零或0

你就快成功了。

^[1-9][0-9]*('.[0-9]+)?$

输入必须

  • 以数字1-9开头
  • 后接0-9的任意序列
  • 和可选:
    • 后面跟着一个或多个0-9的点。

指出:

  1. 这也禁止3.。如果您不希望这样,请将最后一个+替换为*
  2. 您可以使用'd代替[0-9]。我使用后者来与[1-9]保持一致并保持简单。

我想你已经接近了,但是在一个组中包含小数点和后面的数字可能更容易,并且使整个组只允许一次,就像这样:

^[1-9][0-9]*('.'d*)?

另外,这里有一个测试正则表达式的有用站点

我认为这样做会更简单:

float result;
return float.TryParse(textBox1.Text, out result) && result < 1;

如果文本框只接受有效的数字,并且您想断言的是它> 0。你真正需要的是

^[1-9]

或者如果后面的前缀0是允许的

^0*[1-9]

您也可以使用反向forward:

^(?!0'b)'d+('.'d*)?$

这有一个额外的好处,可以接受前面有0的数字,如022。

我遇到了同样的情况并解决了这个问题。试一试。

@"[^ 0]*[0 - 9]。' d {2} $