Мне нужно регулярное выражение сопоставить поле пароля, используя JavaScript с соблюдением следующих требований:
- Не менее 15 символов
- две или более строчных букв
- две или более заглавных букв
- две или более цифр
- два или более из следующих специальных символов:! @ # $% ^ & * -
У меня есть регулярное выражение, которое заботится о большинстве случаев:
/^.*(?=.{15,})(?=.{2,}\d)(?=.{2,}[a-z])(?=.{2,}[A-Z])(?=.{2,}[\!\@\#\$\%\^\&\*\-]).*$/
Проблема здесь с символами, она работает с:
P@ssw0rdP@ssw0rd
Pssw0rdPssw0rd@@
Pssw0rd@@Pssw0rd
но не:
@@Pssw0rdPssw0rd
У меня есть генератор случайных паролей, настроенный для всестороннего тестирования, поэтому любые идеи очень ценятся. Спасибо!