2011-09-28 60 views
4
 <asp:RequiredFieldValidator ID="NewPasswordRequired" runat="server" ControlToValidate="NewPassword" 
ErrorMessage="New Password is required." ToolTip="New Password is required." ValidationGroup="ChangeUserPasswordValidationGroup"> 
</asp:RequiredFieldValidator> 

如何验证文本框中输入的值长度应该大于8,并且必须包含1个数字和1个大写字母。最小长度的文本框验证程序

回答

2

我会使用两个验证器:LenghtValidatorRegularExpressionValidator

有两个验证器的好处是您可以有两个错误消息。

+0

'LenghtValidator'?我没有在[微软的验证控件列表](https://msdn.microsoft.com/en-us/library/aa479013.aspx)中看到它? – JumpingJezza

4

除了你的RequiredFieldValidator 添加一个的RegularExpressionValidator

对于正则表达式,你可以使用这个模式:

^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$ 

必须至少8个字符 必须至少包含一个一个小写字母,一个大写字母,一个数字和一个特殊字符 有效的特殊字符是 - @#$%^ & + =

从技术上讲,您可以使用正则表达式验证程序,但使用倍数可以让您根据缺失和简单不正确的密码获得不同的错误消息。

+0

是的,你应该使用多个验证器。 这里是我的长度单独:'^ [\ s \ S] {6,} $' – Adam

1
<asp:RegularExpressionValidator ID="RegExp1" runat="server"  
Erenter code hererorMessage="Password length must be between 7 to 10 characters" 
ControlToValidate=" txtPassword "  
ValidationExpression="^[a-zA-Z0-9'@&#.\s]{7,10}$" /> 
0

你应该使用两个单独的验证,一个检查长度和其他检查所需的最小字符(这样,你得到的每个检查两个单独的错误消息)。

实施例:

<asp:TextBox ID="MyPasswordField" runat="server" TextMode="Password"></asp:TextBox> 
<!-- Add validator for minimum length requirement --> 
<asp:RegularExpressionValidator Display="Dynamic" ControlToValidate="MyPasswordField" ID="MyPassordMinLengthValidator" ValidationExpression="^[\s\S]{8,}$" runat="server" ErrorMessage="Password must be at least 8 characters long."></asp:RegularExpressionValidator> 
<!-- Add validator for minimum required characters --> 
<asp:RegularExpressionValidator Display="Dynamic" ControlToValidate="MyPasswordField" ID="MyPassordRequiredCharacterValidator" ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$" runat="server" ErrorMessage="Must contain at least one uppercase letter, one lowercase letter, and one number."></asp:RegularExpressionValidator> 

如果还需要验证一个最大长度的密码,以及,可以改变该正则表达式的第一确认器是如下:

<asp:RegularExpressionValidator Display="Dynamic" ControlToValidate="MyPasswordField" ID="MyPassordMinMaxLengthValidator" ValidationExpression="^[\s\S]{8,40}$" runat="server" ErrorMessage="Password must be between 8 and 40 characters long."></asp:RegularExpressionValidator> 

如果你需要验证至少有一个特殊字符存在,那么你可以使用这个正则表达式进行第二次验证(至少有一个以下字符:<space> @#$%^ &?,;:_ | {} = + - !。*()[]〜):

<asp:RegularExpressionValidator Display="Dynamic" ControlToValidate="MyPasswordField" ID="MyPassordRequiredCharacterValidator" ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&?,;:_|~{}=\+\-\!\.\*\(\)\[\] ]).+$" runat="server" ErrorMessage="Must contain at least one uppercase letter, one lowercase letter, one number, and one special character."></asp:RegularExpressionValidator>