Регулярное выражение для проверки пароля

galeevit

Новичок
Здравствуйте, мне нужно написать регулярное выражение для проверки символов в пароле.
Требование:
1)Допустимые символы в пароле: [a-zA-Z0-9]
2)Обязательно должно быть: символы верхнего и нижнего регистра, а также цифры (минимум один символ каждого типа).
3)Длина пароля от 8 до 12 символов.
Вот вариант выражения:
/(?=^.{8,12}$)(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])/;
Данное выражение выполняет все требования окромя того, что возможен ввод других символов окромя [a-zA-Z0-9].
 

hell0w0rd

Продвинутый новичок
1)Допустимые символы в пароле: [a-zA-Z0-9]
Зачем? И ограничение по длине зачем?

А по теме - зачем это делать одной регуляркой?
PHP:
const errors = [];
if (!/\d/.test(pass)) {
  errors.push(__('validation.pass.number'));
}

if (!/[a-z]/.test(pass)) {
  errors.push(__('validation.pass.lowercase'));
}

if (!/[A-Z]/.test(pass)) {
  errors.push(__('validation.pass.uppercase'));
}

if (pass.length < 8) {
  error.push(__('validation.pass.length'));
}
 
Последнее редактирование:

galeevit

Новичок
Та вот чет захотел одной регуляркой) Вот нашел решение :
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,12}$/
Спасибо еще за другой вариант, тоже думал о таком)
 

hell0w0rd

Продвинутый новичок
@galeevit, 8-12 символов-то зачем?
"Просто захотел" в вопросах безопасности - это банальный непрофессионализм и наплевательское отношение к безопасности.
Вообще это какое-то лицемерие, заставлять пользователя придумывать пароль с цифрами и буквами в разном регистре, при этом ограничивать его длину и словарь.
 

Breeze

goshogun
Команда форума
Партнер клуба
1. В пароле допустимы любые символы
2. Не стоит ограничивать максимальную длину пароля
3. Нельзя хранить пароль в открытом виде
 

Breeze

goshogun
Команда форума
Партнер клуба
@galeevitВообще это какое-то лицемерие, заставлять пользователя придумывать пароль с цифрами и буквами в разном регистре, при этом ограничивать его длину и словарь.
Самый большой идиотизм -- это ограничить A-Za-z0-9, чтоб обязательно все были, но при этом не допускать спецсимволы и пробел.
 

galeevit

Новичок
Вы правы, я изначально хотел разобраться, как ограничить использование определенных символов в регулярном выражении.
 

AnrDaemon

Продвинутый новичок
Ну вот с того, в чём ты хочешь разобраться, и надо начинать.
А то выдумал пример через одно место, и на тебя как на дурака смотрят…
 
Сверху