Регулярное выражение паролей работает в Chrome и Firefox, но не в IE7 - PullRequest
1 голос
/ 13 января 2011

Следующее регулярное выражение работает в chrome и firefox, но не в IE7:

^((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20})$

Оно должно содержать не менее 8 символов и иметь как минимум прописные буквы и цифры.Когда я пытаюсь сделать это в IE7, мне нужно набрать 14 символов для проверки.Может кто-нибудь объяснить, почему и каково будет правильное выражение для всех 3 браузеров.

Я использую asp: RegularExpressionValidator для проверки пароля.

Ответы [ 2 ]

3 голосов
/ 13 января 2011
0 голосов
/ 13 января 2011
str.length > 8
/[A-Z]/
/\d/

Три проверки против одного регулярного выражения монстра. Что легче читать и не вызывает проблем в IE?

if( str.length > 8 && str.search(/[A-Z]/) != -1 && str.search(/\d/) != -1 )
{
   //Don't use big long regex when you don't need it
}
...