【问题标题】:asp.net 4.0 regularExpressionValidatorasp.net 4.0 正则表达式验证器
【发布时间】:2012-11-26 10:03:11
【问题描述】:

我需要修改我的正则表达式验证器代码以要求用户满足以下密码要求:

一个。至少包含 2 个大写字符:A, B, C 等。

b.至少包含 2 个小写字符:a, b, c, 等。

c。至少包含 2 个数字:1,2,3,4,5,6,7,8,9,0

d。至少包含 2 个特殊字符,即

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

当前代码只需要 10 个字符的密码长度:

<asp:RegularExpressionValidator ID="valPassword" 
runat="server" ControlToValidate="txtPassword" 
ErrorMessage="Error: 10 character required password length"
ValidationExpression=".{10}.*" /> 

【问题讨论】:

标签: asp.net regex reg-expressionvalidator


【解决方案1】:

你可以使用这个正则表达式

^(?=^.{10}$)(?=^(.*?[A-Z]){2,}.*?$)(?=^(.*?[a-z]){2,}.*?$)(?=^(.*?\d){2,}.*?$)(?=^(.*?[!@#$%^&]){2,}.*?$).*?$
   --------  ---------------------  --------------------- ------------------- --------------------------
      |               |                       |                    |                      |->checks for 2 or more special characters
      |               |                       |                    |->checks for 2 or more digits 
      |               |                       |->checks for 2 or more small letters
      |               |->checks for 2 or more capital words
      |
      |->checks for 10 words..

【讨论】:

  • @Gary.S 我用过这个表格^(.*?[a-z]){2,}.*?$
  • 我的错误,它可以工作,但它已在网站上的其他问题中得到解答
  • 这对我不起作用,但让我走上了正确的道路。我最终使用: ^((?=(.*\d){2,})(?=(.*[a-z]){2,})(?=(.*[A-Z]){2,} )(?=(.*[!@#$%&+~?]){2,}))。{10,25}$