В настоящее время я работаю с регулярным выражением, которое я создал для пароля.Regex - только ОДИН специальный char
Это должны соблюдать эти условия:
- 8 символов
- По крайней мере один MAJ (AZ)
- По крайней мере один мин (AZ)
- По крайней мере, одну цифру (0-9)
- Один специальный символ из следующих функций:,:; '@ # $%^& * _ + = |() {} -/\
- запрещать следующие символы.! [?]: <> `
Вот регулярное выражение:
(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[.,:;'[email protected]#$%^&*_+=|(){}[?\-\]\/\\])(?!.*[<>`]).{8}
Все работает отлично, но теперь, я хочу, чтобы принять только один специальный символ.
Я искал и пробовал много вещей (например, с {1} в конце группы), но это не работает вообще! Результаты, подобные Aa1 ;; aaa все еще соответствуют ..
Может ли кто-нибудь сказать мне, как я могу это сделать?
** На боковой ноте: ** Пожалуйста, не ограничивайте пользователей таким образом. Некоторым пользователям не нравится, когда вы вынуждены использовать невозможное для запоминания паролей. Вы можете добавить предупреждение «слабый пароль», если хотите, но запретить его просто разочаровывает. (Также, говоря, что пароль, подобный «somelargesentencatatishardtobruteforce», слаб, просто тупой). –
Ограничение пользователей, как это ** уменьшить ** безопасность, потому что он отвергает надежные пароли и затрудняет использование генераторов паролей. – Tom
Это длинное и ужасное регулярное выражение. Вы рассматривали вопрос о применении критериев проверки отдельно, так что у вас есть хотя бы шанс когда-либо понять его, когда вы вернетесь к нему через 6 месяцев? – Sobrique