最小长度的文本框验证器

时间:2011-09-28 10:40:28

标签: asp.net validation

     <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个大写字母的值。

4 个答案:

答案 0 :(得分:4)

除了RequiredFieldValidator 添加一个RegularExpressionValidator

对于正则表达式模式,您可以使用此模式:

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

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

从技术上讲,你可以只使用正则表达式验证器,但使用倍数可以让你有不同的错误信息,具体取决于丢失的密码和错误的密码。

答案 1 :(得分:2)

我会使用两个验证器:LenghtValidatorRegularExpressionValidator

拥有两个验证器的优点是您可以有两条错误消息。

答案 2 :(得分:2)

select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts, 4000,1)) 
from {OrderProposal}

答案 3 :(得分:1)

您应该使用两个单独的验证器,一个用于检查长度,另一个用于检查所需的最少字符(这样每次检查都会收到两条单独的错误消息)。

示例:

<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>

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

<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>