我有以下TextBox
和RegularExpressionValidator
<asp:TextBox ID="txtQuantity" runat="server" MaxLength="7"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
runat="server" ErrorMessage="Enter only positive integer values."
ControlToValidate="txtQuantity" ValidationExpression="^[1-9][0-9]*$"
CssClass="required" Display="Dynamic" />
正在正确读取所有正整数,并在错误的条目上给出错误消息。
但是当输入前面带有0的正整数时,验证失败。
示例: "098"
,"09"
等
我应该更改正则表达式还是逻辑?
答案 0 :(得分:1)
您可以允许使用非零的零并且仅使用
禁止零(或空字符串)^(?!0+$)[0-9]+$
请参阅demo
REGEX EXPLANATION :
^
- 字符串的开头(不确定是否有必要,我认为正则表达式默认是锚定的,但请检查)(?!0+$)
- 负面预测,检查整个字符串是否不等于0
(或0000
)[0-9]+
- 从0到9的1位或更多位数(请注意,它已经不允许空字符串)$
- 字符串结尾(与^
相同的注释)