以下はパスワードの私のルールです:
return [
'Password' => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
'Password_confirmation' => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
];
私はそれが持っている必要があるようなルールを追加しようとしています
- 少なくとも1つの小さなイワナ
- 少なくとも1つの大きなチャー
- 少なくとも1つの数字
- 少なくとも1つの特別な文字
- 最小8文字
私はこれを試してみましたが、うまくいきますrequired|confirmed|min:8|max:100|regex:/^[\w]{1,}[\W]{1,}$/
、正規表現テスターソフトウェア。しかし、それがLaravelで動作しない理由はわかりません
私は何かが欠けていますか?
つかいます:
return [
'password' => [
'required',
'confirmed',
'min:8',
'max:50',
'regex:/^(?=.*[a-z|A-Z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/',
]
];
まず、確認を個別に確認する必要はありません。 confirmed
ルールを使用してください。
使用していた表現は無効であり、必要なものとは何の関係もありませんでした。 一部の研究 正規表現で行うことをお勧めします。
上記の式ではパイプ(|
)、配列を使用してルールを指定できます。
Edit:この式 を使用することもできますが、これはもう少し徹底的にテストされているようです。
/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/
PasswordStrengthPackage を確認することをお勧めします。必要なことを行い、正規表現よりもはるかに読みやすい新しい検証ルールを登録します。したがって、あなたの場合、あなたはこれを持つことができます:
return [
'Password' => 'required|min:8|max:100|case_diff|numbers|letters|symbols|confirmed'
];
確認値が存在し、confirmed
フィールドに Password
ルールを追加する限り、Password_confirmation
ルールは不要です。