Angular шаблон RegEx для проверки пароля - PullRequest
0 голосов
/ 01 февраля 2020

Требование:

В моем приложении angular пароль пользователя должен соответствовать приведенному ниже требованию,

  • Минимум восемь символов
  • В хотя бы одна заглавная буква
  • хотя бы одна строчная буква
  • хотя бы одна цифра
  • хотя бы один специальный символ

выпуск:

Для вышеуказанного требования я использую ниже Регулярное выражение.

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&].{8,}$

Мой код, как показано ниже, enter image description here Проблема было ли это возвращение недействительным, если пароль начинается с цифры.

Пример: 1F4@sf5s6,18F4@sf5s6

Вопрос:

Q1: Это RegEx не соответствует моему требованию?

Q2: Как это исправить?

Q3: Есть ли другой способ выполнить это требование?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Попробуйте, я пробовал, и он отлично работает.

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

Вы можете проверить это на этом сайте: https://regex101.com/r/DCRR65/4/tests

0 голосов
/ 01 февраля 2020

Q1: Это RegEx не соответствует моему требованию? Q2: Как это исправить?

Нет, это не соответствует вашим требованиям, но ваше SOO близко. Добавьте пару звездочек после точек, и вы получите золотой цвет. Вот правильное регулярное выражение (https://regex101.com/r/grOsJC/1):

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%?&])[A-Za-z\d$@$!%?&]{8,}$

Проблема, с которой вы столкнулись, заключалась в том, что ваши позитивные взгляды только утверждали второй символ, а не исследуя всю строку. Кроме того, ваш пример пароля содержит запятую, которая не является допустимым символом в регулярном выражении, поэтому он никогда не совпадет.

В3: Есть ли другой способ выполнить это требование?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...