Regex для стандартного пароля ASP.NET Core Identity
Примечание. Этот вопрос, я считаю, не является дубликатом этого вопроса. Мой вопрос связан с правилами проверки по умолчанию. Идентификатор ядра asp.net имеет для проверки пароля и того, как это можно сделать, в то время как связанный вопрос обсуждает в целом о действии проверки пароля (что не решает мою проблему)
Ядро ASP.NET позволяет по умолчанию проверять пароль
- Минимум 8 символов
- Должно иметь хотя бы одно число
- Должен иметь хотя бы один верхний регистр
- Должен иметь хотя бы один нижний регистр
- Должен иметь хотя бы один специальный символ (какие специальные символы разрешены?)
Помня об этих условиях, я попытался сделать следующее регулярное выражение, но оно не работает.
^((?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])|(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^a-zA-Z0-9])|(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])|(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])).{8,}$
Это регулярное выражение принимает строки, даже если выполняется одно из трех условий из точек 2,3,4,5. Но я хочу, чтобы все условия удовлетворяли.
Что я здесь делаю неправильно?
Ответы
Ответ 1
так что используйте
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$^+=!*()@%&]).{8,}$
^
: первая строка
- (? =. * [a-z]): должен содержать хотя бы одну строчную букву
- (? =. * [A-Z]): должен иметь хотя бы один верхний регистр
- (? =. *\d): должен быть хотя бы один номер
- (? =. * [# $ ^ + =! *() @% & amp;]): должен содержать хотя бы один специальный символ
- . {8,}: минимум 8 символов
- $: конец строки
для получения дополнительной информации: это