[PHP][バリデーション] パスワード 3種類のうち2種類使用のバリデーション
パスワードのバリデーション処理で複数種類のルールからいくつかを使用したかのチェック処理について。
やりたいこと
- 半角英字(大文字、小文字の区別をしない)
- 半角数字
- 記号(「!_@」のみ)
上記3種類のうち2種類以上を使用しているかを正規表現でチェックする。
/^.*((?=.*[A-Za-z])(?=.*[0-9])|(?=.*[A-Za-z])(?=.*[!_@])|(?=.*[0-9])(?=.*[!_@])).*$/
regex:https://regex101.com/r/cootWi/1
これを応用すれば半角大文字英字、半角小文字英字、半角数字から2種類以上などもできる。
文字のサイズを指定したい場合は{8,24}(8文字以上24文字以内)などを追加でもいいが、
フレームワークのバリデーション処理で別途文字数制約を加えた方がエラーメッセージを切り分けられるので
ここでは文字種以外については触れない。
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/09/16
- メディア: 単行本
- この商品を含むブログを見る