用于读取带有前导零的正整数的正则表达式

时间:2015-06-24 10:03:17

标签: asp.net regex reg-expressionvalidator

我有以下TextBoxRegularExpressionValidator

<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"

我应该更改正则表达式还是逻辑?

1 个答案:

答案 0 :(得分:1)

您可以允许使用非零的零并且仅使用

禁止零(或空字符串)
^(?!0+$)[0-9]+$

请参阅demo

REGEX EXPLANATION

  • ^ - 字符串的开头(不确定是否有必要,我认为正则表达式默认是锚定的,但请检查)
  • (?!0+$) - 负面预测,检查整个字符串是否不等于0(或0000
  • [0-9]+ - 从0到9的1位或更多位数(请注意,它已经不允许空字符串)
  • $ - 字符串结尾(与^相同的注释)