Как добавить правило проверки пароля в валидаторе?
Правило проверки:
Пароль содержит символы по меньшей мере из трех следующих пяти категорий:
Как добавить правило выше в правиле валидатора?
Мой код здесь
// 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 и решил его следующим образом.
Пароль содержит символы по меньшей мере из трех следующих пяти категорий:
Во-первых, нам нужно создать регулярное выражение и проверить его.
Ваше регулярное выражение будет выглядеть так:
^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$
Я тестировал и проверял его на этом сайте. Тем не менее, выполните свои собственные по-своему и соответствующим образом настройте.
Таким образом, ваш последний код Laravel должен выглядеть следующим образом:
'password' => 'required| min:6| regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/| confirmed',
Заметка:
Некоторые онлайн-ссылки
Что касается вашего пользовательского сообщения проверки правильности регулярного выражения в Laravel, вот несколько ссылок, на которые можно посмотреть:
Звучит неплохо для регулярных выражений.
Правила валидации Laravel поддерживают регулярные выражения. Поддерживаются и версии 4.X и 5.X:
Это также может помочь:
копировать в модели
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' ); }