如何在验证器中添加密码验证规则?
验证规则:
密码包含以下五个类别中至少三个类别的字符:
如何在验证器规则中添加上述规则?
我的代码在这里
// 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版本8以来,您可以使用内置密码验证:
// Require at least 8 characters...
Password::min(8)
// Require at least one letter...
Password::min(8)->letters()
// Require at least one uppercase and one lowercase letter...
Password::min(8)->mixedCase()
// Require at least one number...
Password::min(8)->numbers()
// Require at least one symbol...
Password::min(8)->symbols()
或者你可以把他们都锁起来
use Illuminate\Validation\Rules\Password;
$rules = [
'password' => [
'required',
'string',
Password::min(8)
->mixedCase()
->numbers()
->symbols()
->uncompromised(),
'confirmed'
],
]
这与OP要求不太匹配,但希望能有所帮助。使用Laravel,您可以以易于维护的格式定义规则,如下所示:
$inputs = [
'email' => 'foo',
'password' => 'bar',
];
$rules = [
'email' => 'required|email',
'password' => [
'required',
'string',
'min:10', // must be at least 10 characters in length
'regex:/[a-z]/', // must contain at least one lowercase letter
'regex:/[A-Z]/', // must contain at least one uppercase letter
'regex:/[0-9]/', // must contain at least one digit
'regex:/[@$!%*#?&]/', // must contain a special character
],
];
$validation = \Validator::make( $inputs, $rules );
if ( $validation->fails() ) {
print_r( $validation->errors()->all() );
}
将输出:
[
'The email must be a valid email address.',
'The password must be at least 10 characters.',
'The password format is invalid.',
]
(默认情况下,正则表达式规则共享一条错误消息,即四条失败的正则表达式规则导致一条错误消息)
我在Laravel中遇到过类似的情况,并通过以下方式解决了它。
密码包含以下五个类别中至少三个类别的字符:
首先,我们需要创建一个正则表达式并对其进行验证。
您的正则表达式如下所示:
^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$
我已经在这个网站上进行了测试和验证。然而,以你自己的方式表现自己,并做出相应的调整。这只是正则表达式的一个示例,您可以按自己的方式进行操作。
因此,最终的Laravel代码应该如下所示:
'password' => 'required|
min:6|
regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/|
confirmed',
更新评论中提到的@NikK,在Laravel 5.5及更新版本中,密码值应封装在数组方括号中,如
'password' => ['required',
'min:6',
'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/',
'confirmed']
我没有在Laravel 5.5上测试它,所以我信任@NikK,因此我转而使用c#/。这几天没有太多时间和拉雷维尔在一起。
注:
一些在线参考资料
关于Laravel中正则表达式规则的自定义验证消息,这里有几个链接可供查看:
所以在任何一个人关闭这个之前,我在这里引用一个答案并提出一个问题。 null 还有什么想法吗?我如何使Laravel7工作,以匹配以上的约束?
本文向大家介绍laravel unique验证、确认密码confirmed验证以及密码修改验证的方法,包括了laravel unique验证、确认密码confirmed验证以及密码修改验证的方法的使用技巧和注意事项,需要的朋友参考一下 confirmed 验证字段必须有一个匹配字段 foo_confirmation,例如,如果验证字段是 password,必须输入一个与之匹配的 password_
我正在尝试验证密码字段是否存在。我想允许某人编辑用户,他们可能想更改用户密码,也可能不想更改用户密码。所以我想我可以使用Laravels验证规则,特别是“有时”规则来实现这一点。我有一套规则: 例如,对于其他字段,通常会有其他规则,而对于密码,则会有更严格的规则。如果传递的数据中存在密码字段,我希望这只应用min:8规则,但是如果我将密码字段留空,则会出现一个验证错误,表明密码字段是必需的。 我不
我做了一个自定义验证规则,它迭代一个包含键
问题内容: 因此,我必须创建验证密码是否有效的代码: 至少8个字符长 包含至少1个数字 包含至少1个大写字母 这是代码: 我不确定出什么问题,但是当我输入带有数字的密码时-它会一直告诉我我需要一个带有数字的密码。有什么办法吗? 问题答案: 您可以将模块用于正则表达式。 有了它,您的代码将如下所示:
主要内容:使用方式,实例演示jQuery Password Validation(密码验证)插件扩展了 jQuery Validate 插件,提供了两种组件: 一种评价密码的相关因素的功能:比如大小写字母的混合情况、字符(数字、特殊字符)的混合情况、长度、与用户名的相似度(可选的)。 一种使用评价功能显示密码强度的验证插件自定义方法。显示的文本可以被本地化。 您可以简单地自定义强度显示的外观、本地化消息显示,并集成到已有的表