如何在验证器中添加密码验证规则?
验证规则:
密码包含以下五类中至少三类的字符:
- 英文大写字符 (A – Z)
- 英文小写字符 (a – z)
- 10 基数 (0 – 9)
- 非字母数字(例如:!、$、# 或 %)
- 统一码字符
如何在验证器规则中添加上述规则?
我的代码在这里
// 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)
- 非字母数字(例如:!、$、# 或 %)
- 统一码字符
首先,我们需要创建一个正则表达式并验证它。
你的正则表达式看起来像这样:
^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$
我已经测试并验证了它this https://regex101.com/r/lC1vM1/277地点。然而,以你自己的方式表现你自己,并进行相应的调整。这只是正则表达式的一个示例,您可以按照您想要的方式进行操作。
所以你的最终 Laravel正则表达式规则 https://laravel.com/docs/5.6/validation#rule-regex应该是这样的:
'password' => [
'required',
'min:6',
'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/',
'confirmed'
]
Note:
- 我已经在正则表达式站点和 Laravel 5 测试环境上对其进行了测试和验证,并且它有效。
- 我使用了 min:6,这是可选的,但拥有反映不同方面的安全策略始终是一个好习惯,其中之一是最小密码长度。
- 我建议您使用密码确认来确保用户输入正确的密码。
- 在 6 个字符内,我们的正则表达式应至少包含 3 个 a-z 或 A-Z 以及数字和特殊字符。
- 在转移到生产环境之前,请务必在测试环境中测试您的代码。
- 我在这个答案中所做的只是正则表达式密码的示例
关于 Laravel 中正则表达式规则的自定义验证消息,可以查看以下几个链接:
- Laravel 验证自定义消息 https://stackoverflow.com/questions/23117999/laravel-validation-custom-message
- Laravel 中正则表达式规则的自定义验证消息? https://stackoverflow.com/questions/20320148/custom-validation-message-for-regex-rule-in-laravel
- Laravel 自定义验证消息 https://stackoverflow.com/questions/23996289/laravel-custom-validation-messages
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)