如何允许 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
    ],
]);```