ここから本文です

phpでの指定した半角記号の正規表現での表し方を教えて下さい。

jav********さん

2015/10/2310:24:19

phpでの指定した半角記号の正規表現での表し方を教えて下さい。

現在、パスワードチェックで、「半角英数記号を必ず混在させ、8文字以上」という処理を加えたいのですが、調べたところ、半角英数字、半角記号については以下の通りでうまくいくようでした。

preg_match('/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@[-`{-~])[!-~]{8,}+\z/i', $pass)

上記は、半角記号すべてに対してでしたが、
半角英数字と記号(「-」「_」「@」「!」「?」)の混在をチェックしたいのですが、どのように書けばいいのでしょうか?

時間が無いため、質問させて頂きました。お分かりになる方、どうぞよろしくお願いいたします。

閲覧数:
3,283
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ryo********さん

2015/10/2312:15:21

正規表現採用ありがとうございます。

http://e-words.jp/p/r-ascii.html

これを見ると記号が飛び飛びなので全部指定すればいいと思います。

(?=.*?[!-\/:-@[-`{-~])

(?=.*?[_@!?-])

更に記号をもし上記のものしか認めたくないのであれば

[!-~]

[\w@!?-]

\wは「A-Za-z0-9_」の意味です。

  • ryo********さん

    2015/10/2312:18:14

    補足

    「-」は文字クラス内でバックスラッシュエスケープ出来ない文字となっており、区間ではなくその文字自身を表したい場合は必ず先頭か末尾にもってくる必要があります。今回は末尾に統一しています。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる