ASP.NET RegularExpressionValidator如何编写10-100含边界整数的验证正则表达式
10-100整数范围的正则校验实现
正则匹配逻辑
按照校验规则,拆分合法取值分支做全匹配,避免匹配错位:
- 覆盖10-99区间的两位整数:用
[1-9]\d匹配,十位限定1-9,个位限定0-9,自动排除个位数、带前导0的伪两位整数 - 覆盖上边界值100:单独用
100分支匹配 - 最终全匹配正则表达式:
^(100|[1-9]\d)$
修正后的完整控件代码
<asp:TextBox ID="Donation" Columns="20" MaxLength="3" runat="server" /> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Donation" ErrorMessage="Please enter a valid donation amount (must be an integer from 10 to 100, inclusive)" ValidationExpression="^(100|[1-9]\d)$"> </asp:RegularExpressionValidator>
修正说明
- 原代码中
runat="server"与ControlToValidate属性连写无分隔空格,会导致服务端控件解析失败,已补全格式 - 原正则
*为通配任意内容的无效规则,替换为上述范围正则后可精准覆盖校验要求 - 保留TextBox的
MaxLength="3"配置,与最长合法值100的长度匹配,避免用户输入无效超长内容
注意:该正则会自动拦截非数字字符、小数、越界值、前导0格式的输入,所有匹配结果均为符合规则的10-100区间整数
内容的提问来源于stack exchange,提问作者Gavin yap
相关产品推荐
相关产品推荐

