ASP.Net使用RegularExpressionValidator确保至少有一个特殊字符

时间:2017-01-25 09:23:51

标签: asp.net regex passwords special-characters

我正在开发一个ASP.Net应用程序,我需要确保我的密码字段至少包含一个特殊字符。

这就是我所拥有的:

<asp:TextBox ID="Password" runat="server" TextMode="Password" />
<asp:RequiredFieldValidator ID="rfvPassword" runat="server" ForeColor="Red"
    ErrorMessage="Password Required" ValidationGroup="vgErrors" 
    ControlToValidate="Password" Display="Dynamic" Text="*" />

然后我需要在此字段中添加<asp:RegularExpressionValidator >,这需要采用以下特殊字符:(包括空格)

 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

我很难实现这一点,因为对于其中一个,我不太熟悉<asp:RegularExpressionValidator >控件,因为它们是特殊字符,所以我遇到了一些问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式匹配包含8到16个字符的密码,包括列表中的一个特殊字符。您可以根据需要更改允许的总字符范围:

^(?=.*\w)(?=.*[ !"#$%&'()*+,-./:;<=>?@[\]\^_`\{\|\}\~]).{8,16}$

在您的aspx页面中,添加RegularExpressionValidator

<asp:RegularExpressionValidator ID="revPassword" ControlToValidate="Password"
     ForeColor="Red" ValidationGroup="vgErrors" runat="server" ErrorMessage="Error Message"/>

在您的aspx页面的代码隐藏中,您可以设置ValidationExpression的{​​{1}}:

RegularExpressionValidator