我想要正则表达式来验证十进制数,并且不允许值0.00

时间:2012-07-23 08:23:40

标签: asp.net validation textbox

我正在使用正则表达式来验证十进制或数字(18,3)数字, 它不允许用户输入超过1个小数点和所有

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Invalid" ControlToValidate="txtqty"  ValidationExpression="^[-+]?[0-9]*\.?[0-9]*([?[0-9]+)?$" ValidationGroup="save"></asp:RegularExpressionValidator>

但我也想禁止用户输入任何等于0的值,如下所示:

0.00, 0000.00, 00.0, 0 ...

4 个答案:

答案 0 :(得分:2)

我认为问题在于你使用一个验证器来执行多个任务

分开你的问题:

  • 验证格式

  • 验证特定值

CompareValidator

外,请使用简单的RegularExpressionValidator
<asp:CompareValidator ErrorMessage="Value must be grater than 0" ControlToValidate="TextBox1"
    runat="server" Operator="NotEqual" Type="Double" ValueToCompare="0" />

答案 1 :(得分:1)

“使用以下正则表达式:

^\d[1-9]*(\.\d+)|([0-9])$

它禁止以下模式中的值:

00.00,0123.78 i.e value before decimal followed by 0

答案 2 :(得分:0)

你可以用这个

^([1-9][0-9]*\.[0-9]+)|([0-9]+)$

答案 3 :(得分:0)

<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Invalid" ControlToValidate="txtqty" MaximumValue="99999" MinimumValue="1.0000" ValidationGroup="save"></asp:RangeValidator>      

范围验证工具