Проверка регулярных выражений в Laravel 5.2


Ниже приведено мое правило для пароля:

return [
    'Password'                  => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
    'Password_confirmation'     => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
];

Я пытаюсь добавить правило таким образом, чтобы оно должно было иметь

  1. по крайней мере один маленький символ
  2. по крайней мере один большой символ
  3. по крайней мере одно число
  4. по крайней мере один специальный символ
  5. минимум 8 символов

Я попробовал это, и это работает required|confirmed|min:8|max:100|regex:/^[\w]{1,}[\W]{1,}$/, на программном обеспечении для тестирования регулярных выражений . но не уверен, почему это не работает в Laravel

Я что-то упускаю ?

Author: Black, 2016-01-15

2 answers

Использование:

return [
    'password' => [
        'required',
        'confirmed',
        'min:8',
        'max:50',
        'regex:/^(?=.*[a-z|A-Z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/',
    ]
];

Во-первых, вам не нужно проверять подтверждение отдельно. Просто используйте правило confirmed.

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

В связи с тем, что в приведенном выше выражении используются каналы (|), вы можете указать правила с помощью массива.

Редактировать: Вы также можете использовать это выражение, которое похоже, он был проверен немного более тщательно.

/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/
 25
Author: Mike Rockétt, 2016-10-15 07:19:22

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

return [
    'Password' => 'required|min:8|max:100|case_diff|numbers|letters|symbols|confirmed'
];

Правило Password_confirmation не требуется, пока присутствует значение подтверждения и вы добавляете confirmed правило для поля Password.

 6
Author: Bogdan, 2016-01-17 01:50:23