Laravel правило проверки пароля с ошибкой - PullRequest
0 голосов
/ 05 апреля 2020

Правило проверки:

Пароль содержит символы как минимум из трех следующих пяти категорий:

Engli sh заглавные буквы (A - Z) Engli sh строчные буквы ( a - z) 10 основных цифр (0 - 9) Non-alphanumeri c (например:!, $, # или%) Unicode-символы

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

 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'min:8', 'regex:/[a-z]/', 'regex:/[A-Z]/', 'regex:/[0-9]/', 'regex:/[@$!%*#?&]/','confirmed'],

1 Ответ

0 голосов
/ 05 апреля 2020

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

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

Что означает совпадение:

  • {8,} Минимум восемь символов ( поэтому нет необходимости в min:8)
  • A-Za-z хотя бы одной букве любого верхнего и нижнего
  • @$!%*#?&] хотя бы одного специального символа.
  • \d число / с

, поэтому ваши правила должны выглядеть примерно так:

'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'regex:^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$','confirmed'],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...