Смена пароля Control RegEx проверяется странно только в IE 7 - PullRequest
2 голосов
/ 25 марта 2010

Я использую Asp.net для управления изменением пароля в моем приложении, и все, кажется, будет найдено и изменено, пока пользователь не скажет мне, что у него есть проблема с соблюдением требований к прочности при смене пароля. Рассматривая это, она использует IE 7, и независимо от того, что она вставляет, проверка не проходит (и ТОЛЬКО в IE 7. Firefox, IE 8, Chrome и т. Д. Все работают как положено). Вот регулярное выражение, которое я использую:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{5,15}$

Я опробовал несколько других, которые я нашел по всему этому сайту, и других, которые, кажется, люди используют без проблем, и я столкнулся с той же проблемой.

Кажется, что любой шаблон, который я ввожу последним (цифра, верхняя или нижняя альфа), будет повторяться минимум 5 раз. Например:

Hello1 (не работает)

11111Hello (не работает)

Hello11111 (работает)

Опять же, это ТОЛЬКО в IE 7. Я уже потратил слишком много времени на это, и я в замешательстве. У кого-нибудь есть идеи ??

1 Ответ

3 голосов
/ 25 марта 2010

Видимо в Internet Explorer есть ошибка. Проверьте это сообщение: Ошибка JaG / VBScript Regex Lookahead . Пример тот же - проверка пароля - и они предоставляют обходной путь. Используя предложенный подход в качестве руководства, шаблон становится:

^(?=.{5,15}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*

Их схема очень похожа на вашу, за исключением негативного осмотра пробелов.


Попробуйте использовать .* при осмотре. Использование только . охватывает только один символ, за которым следует то, что вы указали при просмотре. Вы хотите посмотреть вперед и посмотреть, совпадает ли что-нибудь. Я попробовал следующее выражение в Expresso, и оно работало с примерами, которые вы перечислили, а также, как и ожидалось, некорректно.
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{5,15}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...