如何允许 Laravel 中的密码使用特殊字符?
How to allow special characters for a password in Laravel?
默认情况下 Laravel 的验证器有 alpha,apha_num,apha_dash。这三个都不能检查特殊字符,所以如果我为密码字段设置其中任何一个,如果密码有特殊字符,它总是给我一个错误。有人知道如何在验证中允许特殊字符吗?
您可以使用正则表达式作为验证器。
'field' => 'regex:A-Za-z0-9\!-_'
在表达式的 0-9
部分后添加您要允许的特殊字符。
我建议不要在那里使用任何东西,除非需要并且可能是最小长度(最小:6 iirc)。这样用户就可以输入他们喜欢的任何内容,数字、字母或特殊字符...
我的问题是你想阻止什么?
试试这个。
您需要编辑一些东西,例如 min() 密码长度等... Framework/src/Illuminate/Validation//Rules/Password
use Illuminate/Validation//Rules/Password
...
$request->validate([
'password' => [
'required',
'confirmed',
Password::min(8)
->mixedCase() // allows both uppercase and lowercase
->letters() //accepts letter
->numbers() //accepts numbers
->symbols() //accepts special character
->uncompromised(),//check to be sure that there is no data leak
],
]);```
默认情况下 Laravel 的验证器有 alpha,apha_num,apha_dash。这三个都不能检查特殊字符,所以如果我为密码字段设置其中任何一个,如果密码有特殊字符,它总是给我一个错误。有人知道如何在验证中允许特殊字符吗?
您可以使用正则表达式作为验证器。
'field' => 'regex:A-Za-z0-9\!-_'
在表达式的 0-9
部分后添加您要允许的特殊字符。
我建议不要在那里使用任何东西,除非需要并且可能是最小长度(最小:6 iirc)。这样用户就可以输入他们喜欢的任何内容,数字、字母或特殊字符...
我的问题是你想阻止什么?
试试这个。 您需要编辑一些东西,例如 min() 密码长度等... Framework/src/Illuminate/Validation//Rules/Password
use Illuminate/Validation//Rules/Password
...
$request->validate([
'password' => [
'required',
'confirmed',
Password::min(8)
->mixedCase() // allows both uppercase and lowercase
->letters() //accepts letter
->numbers() //accepts numbers
->symbols() //accepts special character
->uncompromised(),//check to be sure that there is no data leak
],
]);```