asp.net 4.0 normalExpressionValidator

Мне нужно изменить код моего regularexpressionvalidator, чтобы пользователь соблюдал следующие требования к паролю:

а. Содержит как минимум 2 заглавных буквы: A, B, C и т.п.

б. Содержит как минимум 2 строчных символа: a, b, c, и т.п.

с. Содержит как минимум 2 номера: 1,2,3,4,5,6,7,8,9,0

д. Содержит как минимум 2 специальных символа, т.е.

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

Текущий код требует только 10-значный пароль:

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

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..
Другие вопросы по тегам