HTML5 - Password Regex

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

() [] {} ?! шаблон = "^ (? =. * Г) (? =. * [AZ]) (? =. * [() [] {}?! $% & / = * + ~,;:. <> -_]) (= * [AZ]) {9} $ "% & / = + ~,;:?..?. <> -_

Я сделал это регулярное выражение, но он не работает ... кто-нибудь может это исправить?

pattern="(?=.*d)(?=.*[a-z])(?=.*[()[]{}?!$%&/=*+~,.;:<>_-])(?=.*[A-Z]).{9,}"

regex,html5,passwords,

0

Ответов: 1


1 принят
^(?=.*d)(?=.*[a-z])(?=.*[()[]{}?!$%&/=*+~,.;:<>-_])(?=.*[A-Z]).{9,}?$
# ] needs to be escaped ----^^                  ^                   ^
# otherwise it will close the character class   |                   |
# [ too but for no logical reason               |                   |
# the - is used to define a character range ----+                   |
# the range >-_ gives >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_            |
# there's no reason to make this quantifier non-greedy -------------+

Существует несколько ошибок:

^

Кроме того, якоря $и $неявные, вам не нужно их ставить.

Обратите внимание, что используя диапазоны, вы также можете написать шаблон следующим образом:

pattern="(?=.*d)(?=.*[a-z])(?=.*[!$%&(-/:-?_{}~])(?=.*[A-Z]).{9,}"
регулярное выражение, html5, пароли,
Похожие вопросы