我已经使用regularexpressionvalidator实现了正则表达式,但是它不起作用。
就好像它忽略了验证器。为什么呢
<div class="form-group">
<label class="control-label">
New Password
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtnewPassword"
ErrorMessage="*" Display="Dynamic" ForeColor="red" ValidationGroup="acc"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="regexValNewPassword" runat="server" Display="Dynamic" ForeColor="red" ValidationGroup="acc"
ControlToValidate="txtnewPassword"
EnableClientScript="False"
ErrorMessage="***"
ValidationExpression="^[1-9]+[0-9]*$" Visible="True">
*
</asp:RegularExpressionValidator>
</label>
<asp:TextBox runat="server" ID="txtnewPassword" TextMode="Password" CssClass="form-control passwords"></asp:TextBox>
</div>
更新:
请参阅。我只在输入数字字符串时希望我的正则表达式抛出错误。 123455。它只能接受混合字符字符串,例如12ac3b12或aac2211 @ 11
答案 0 :(得分:0)
如果输入的只是数字,则可以使用不匹配的正则表达式。根据您的当前要求,只有输入至少包含一位数字和一个字母时,它才会匹配。这里的最小密码长度是2,您可以在此处指定数字{N,}来设置任何长度。如果您对字符集有其他类似要求,可以进一步调整正则表达式,或者让我知道,我可以进一步更新正则表达式。 / p>
^(?=.*[A-Za-z])(?=.*\d).{2,}$
演示
答案 1 :(得分:0)
您的正则表达式^[1-9]+[0-9]*$
仅匹配数字,并且应以1-9开头。
要检查是否至少包含一个字符和一个数字,可以使用正向前瞻。
^(?=.*[A-Za-z@])(?=.*\d)[@a-zA-Z\d]+$
说明
^
字符串的开头(?=.*[A-Za-z@])
正向前进,以断言character class中的1个字符(?=.*\d)
正向肯定表示1位数字[@a-zA-Z\d]+
匹配字符类中所允许内容的1倍以上。您可以将要匹配的内容添加到角色类中。$
字符串的结尾由于2个正向先行,最小长度为2个字符。如果要匹配最小长度(例如8),可以将{8}
之类的quantifier(而不是+
)添加到字符类中。