ArtDenis
@ArtDenis
Разработчик сайтов и мобильных приложений

Проверка пароля регулярным выражением?

Здравствуйте, не могу найти подходящего ответа. Сам в этом ничего не понимаю и на данный момент нет времени разбираться.

Единственное что нашел:
preg_match('A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z', $pass)


Это регулярное выражение будет следить за тем, чтобы в текстовое поле было введено не менее шести символов, цифры, дефисы и подчеркивания.
Текстовое поле должно содержать как минимум один символ верхнего регистра, один нижнего регистра и одну цифру.


В принципе, по требованиям походит, но не работает и выдает Warning: preg_match(): Delimiter must not be alphanumeric or backslash

Для меня было бы идеально:
1) Только латинские буквы, цифры и символы: !?#_- (либо можно вообще любые символы разрешить?)
2) Обязательное присутствие букв латинского алфавита в верхнем и нижнем регистре, а также цифр.

Заранее спасибо за ответ.
  • Вопрос задан
  • 4845 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmeroff
@dmeroff
Вы меня, конечно, извините, но зачем ограничивать пользователя в выборе пароля? Зачем ограничивать длину пароля сверху? Зачем вырезать спецсимволы из его пароля, если он все равно будет хэширован (вы ведь хэшируете пароль, а не храните его plain текстом?)? Просто ограничьте минимальную длину пароля символами шестью.

P.S. И вообще как же меня выводят из себя всякие ограничения для пароля, типа: введите одну цифру, одну букву, одну букву в верхнем регистре, один спецсимвол, один китайский иероглиф. Для людей, которые делают такие формы, в аду, наверное, есть отдельный котел.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы