Правило проверки пароля Laravel

Как добавить правило проверки пароля в валидаторе?

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

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

  • Английские буквы верхнего регистра (A – Z)
  • Английские символы нижнего регистра (a – z)
  • Базовые 10 цифр (0 – 9)
  • Non-alphanumeric (Например:!, $, # Или%)
  • Юникодные символы

Как добавить правило выше в правиле валидатора?

Мой код здесь

// create the validation rules ------------------------ $rules = array( 'name' => 'required', // just a normal required validation 'email' => 'required|email|unique:ducks', // required and must be unique in the ducks table 'password' => 'required', 'password_confirm' => 'required|same:password' // required and has to match the password field ); // do the validation ---------------------------------- // validate against the inputs from our form $validator = Validator::make(Input::all(), $rules); // check if the validator failed ----------------------- if ($validator->fails()) { // get the error messages from the validator $messages = $validator->messages(); // redirect our user back to the form with the errors from the validator return Redirect::to('home') ->withErrors($validator); } 

У меня был аналогичный сценарий в Laravel и решил его следующим образом.

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

  • Английские буквы верхнего регистра (A – Z)
  • Английские символы нижнего регистра (a – z)
  • Базовые 10 цифр (0 – 9)
  • Non-alphanumeric (Например:!, $, # Или%)
  • Юникодные символы

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

Ваше регулярное выражение будет выглядеть так:

 ^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$ 

Я тестировал и проверял его на этом сайте. Тем не менее, выполните свои собственные по-своему и соответствующим образом настройте.

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

 'password' => 'required| min:6| regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/| confirmed', 

Заметка:

  1. Я тестировал и проверял его как на сайте регулярного выражения, так и на тестовой среде Laravel 5, и он работает.
  2. Я использовал min: 6, это необязательно, но всегда полезно иметь политику безопасности, которая отражает различные аспекты, одна из которых – минимальная длина пароля.
  3. Я предлагаю вам использовать пароль, подтвержденный для обеспечения правильного ввода пароля.
  4. В пределах 6 символов наше регулярное выражение должно содержать как минимум 3 из az или AZ, а также номер и специальный символ.
  5. Всегда проверяйте свой код в тестовой среде, прежде чем перейти к производству.

Некоторые онлайн-ссылки

Что касается вашего пользовательского сообщения проверки правильности регулярного выражения в Laravel, вот несколько ссылок, на которые можно посмотреть:

  • Специальное сообщение для проверки Laravel Validation
  • Пользовательское сообщение проверки правильности регулярного выражения в Laravel?
  • Пользовательские сообщения проверки Laravel
  • Как добавить регулярное выражение к имени атрибута в пользовательских проверках в Laravel?

Звучит неплохо для регулярных выражений.

Правила валидации Laravel поддерживают регулярные выражения. Поддерживаются и версии 4.X и 5.X:

Это также может помочь:

http://www.regular-expressions.info/unicode.html

копировать в модели

  public static function Rules($id){ if($id!=''){ $id=','.$id; } return array( 'name'=>'required|min:2', 'email'=>'required|email|unique:users,email'.$id, 'username'=>'required|unique:users,username'.$id, 'password'=>'required|min:8|regex:/^.*(?=.{3,})(?=.*[az])(?=.*[AZ])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%@]).*$/|confirmed', 'password_confirmation'=>'required|min:6', 'mobile_no'=>'min:5', 'profile_image'=>'mimes:jpg,jpeg,bmp,png|max:10000' ); }