1

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

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

4

1 回答 1

2

您可以使用非零来允许零,并且只允许使用零(或空字符串)

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

演示

正则表达式解释

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