phpでパスワードのチェックを行うようにしているのですが、
下記のようにすることで数値、記号(ASCIIコード表に記載されている記号全て)、半角英字(大文字)、半角英字(小文字)のすべてを含むようにチェックしようとしています。
php
1if (!preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#()=~^|`{};+:\-<>,._[]\\])[A-Za-z\d@$!%*?&#()=~^|`{};+:\-<>,._[]\\]{10,30}$/',$data['password'])) { 2 /* エラー時の処理 */; 3}
しかし、現時点ではシングルクォートを入力しても記号として判断されずエラーとなってしまいます。
preg_match()にシングルクォートも含めたいのですが、文字を囲む際にシングルクォートを使用しているため、どう指定するのかが分かりません。
この場合はどういう書き方をすることでシングルクォートも含めることができるのでしょうか?
また、preg_match()内の記号を判定する箇所がとてもスマートではないことは承知なのですが、記号全ての指定の方法が分かりません…
もっとよい書き方はあるのでしょうか?
アドバイスをよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー