读取带前导零的正整数的正则表达式
Regular expression for reading positive integers with leading zeros
我有以下 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+$)[0-9]+$
见demo
正则表达式解释:
^
- 字符串开头(不确定是否有必要,我认为正则表达式默认锚定,但请检查)
(?!0+$)
- 检查整个字符串是否不等于 0
(或 0000
) 的否定前瞻
[0-9]+
- 从 0 到 9 的 1 个或多个数字(注意它已经不允许空字符串)
$
- 字符串结尾(与 ^
相同的注释)
我有以下 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+$)[0-9]+$
见demo
正则表达式解释:
^
- 字符串开头(不确定是否有必要,我认为正则表达式默认锚定,但请检查)(?!0+$)
- 检查整个字符串是否不等于0
(或0000
) 的否定前瞻
[0-9]+
- 从 0 到 9 的 1 个或多个数字(注意它已经不允许空字符串)$
- 字符串结尾(与^
相同的注释)