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

Regular expression for reading positive integers with leading zeros

我有以下 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"

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

您可以允许零和非零,而只允许零(或空字符串)

^(?!0+$)[0-9]+$

demo

正则表达式解释:

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