2017-01-25 38 views
1

我正在研究ASP.Net应用程序,并且我需要确保我的密码字段至少包含一个特殊字符。ASP.Net使用RegularExpressionValidator来确保至少有一个特殊字符

这是我有:

<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 >到这个领域还有哪些需要采取下列特殊字符(包括空格)

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

我正在努力实现这一点,因为我不太熟悉<asp:RegularExpressionValidator >控件,因为它们是特殊字符,所以我遇到了一些问题。

任何帮助将不胜感激。

+1

它看起来像你更好的使用的RegularExpressionValidator:https://msdn.microsoft.com/en-us/library/ff650303.aspx –

回答

1

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

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

在你的aspx页面,添加RegularExpressionValidator

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

在你的aspx页面的代码隐藏,你可以设置的ValidationExpressionRegularExpressionValidator

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

临屋恩,这完美地解决了我的问题:) –

+1

不客气。总是乐于帮助:) – krlzlx

相关问题