如何使用 Laravel 5.1 验证密码
How to validate passwords with Laravel 5.1
我想验证密码以使其满足以下条件:
- 长度至少为 8 个字符
- 包含至少 1 个大写字母
- 包含至少 1 个小写字母
- 包含至少 1 个特殊字符
- 匹配确认字段
目前我有:
$validator = \Validator::make($request, [
'password' => 'min:8|confirmed'
],[
'password.confirmed' => 'Both `password` and `password_confirmation` are required',
'password.min' => 'The password must contain at least 8 characters'
]);
这将处理最小长度和确认,但我可以找到进行其他检查的好方法。任何帮助将不胜感激。
我认为您可以使用正则表达式来解决这个问题:
http://laravel.com/docs/5.1/validation#rule-regex
你可以这样使用:
['password' => ['regex:^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=!?]).*$']]
希望对您有所帮助!
试一试它有效:)
$rules = array(
'username' => 'required',
'email' => 'required | between:5,100 | email ',
'password' => 'required | confirmed |regex:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()+]+.*)[0-9a-zA-Z\w!@#$%^&*()+]{8,}$/'
);
$input = Input::all();
$validation = Validator::make($input, $rules);
if ($validation->fails()){
//if validation fails redirect with inputs
return redirect()->route('/')->withInput()
->withErrors($validation);
}
我想验证密码以使其满足以下条件:
- 长度至少为 8 个字符
- 包含至少 1 个大写字母
- 包含至少 1 个小写字母
- 包含至少 1 个特殊字符
- 匹配确认字段
目前我有:
$validator = \Validator::make($request, [
'password' => 'min:8|confirmed'
],[
'password.confirmed' => 'Both `password` and `password_confirmation` are required',
'password.min' => 'The password must contain at least 8 characters'
]);
这将处理最小长度和确认,但我可以找到进行其他检查的好方法。任何帮助将不胜感激。
我认为您可以使用正则表达式来解决这个问题: http://laravel.com/docs/5.1/validation#rule-regex
你可以这样使用:
['password' => ['regex:^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=!?]).*$']]
希望对您有所帮助!
试一试它有效:)
$rules = array(
'username' => 'required',
'email' => 'required | between:5,100 | email ',
'password' => 'required | confirmed |regex:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()+]+.*)[0-9a-zA-Z\w!@#$%^&*()+]{8,}$/'
);
$input = Input::all();
$validation = Validator::make($input, $rules);
if ($validation->fails()){
//if validation fails redirect with inputs
return redirect()->route('/')->withInput()
->withErrors($validation);
}