3

我正在使用正则表达式来验证十进制或数字 (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

4 回答 4

2

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

划分你的问题:

  • 验证格式

  • 验证特定值

使用一个简单CompareValidator的除了你的RegularExpressionValidator

<asp:CompareValidator ErrorMessage="Value must be grater than 0" ControlToValidate="TextBox1"
    runat="server" Operator="NotEqual" Type="Double" ValueToCompare="0" />
于 2012-07-23T08:44:12.400 回答
1

"使用以下正则表达式:

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

它不允许以下模式的值:

00.00,0123.78 i.e value before decimal followed by 0
于 2012-07-23T09:05:14.840 回答
0

你可以用这个

^([1-9][0-9]*\.[0-9]+)|([0-9]+)$
于 2012-07-23T08:42:48.827 回答
0
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Invalid" ControlToValidate="txtqty" MaximumValue="99999" MinimumValue="1.0000" ValidationGroup="save"></asp:RangeValidator>      

范围验证器工作

于 2012-07-23T09:18:15.943 回答