ASP.NET正则表达式验证器:实现字符串含数字验证的问题
解决ASP.NET RegularExpressionValidator验证包含数字的问题
你当前使用的正则表达式^[a-zA-Z0-9]+$仅能匹配由字母和数字组成的字符串,但无法强制要求字符串中必须包含至少一个数字——纯字母的字符串也会被判定为合法,这就是它不满足需求的原因。
要实现“字符串必须包含至少一个数字(纯数字字符串也符合要求)”的验证逻辑,需要修改正则表达式,通过正向预查来确保字符串中存在数字:
<asp:RegularExpressionValidator ID="rfvMyCode" runat="server" ValidationGroup="ValidationSave" ControlToValidate="txtMyCode" ErrorMessage="String must have a Number" ForeColor="#FF3300" ValidationExpression="^(?=.*\d)[a-zA-Z0-9]+$"></asp:RegularExpressionValidator>
正则表达式各部分说明:
(?=.*\d):正向预查,用于确保字符串中至少存在一个数字(\d代表数字字符)[a-zA-Z0-9]+:匹配由字母或数字组成的非空字符串^和$:分别匹配字符串的开头和结尾,确保整个字符串都符合规则
这样修改后,纯字母的字符串会被拦截,仅包含数字、或字母与数字混合的字符串才能通过验证。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

