前提・実現したいこと
ここに質問の内容を詳しく書いてください。
PHPで会員登録フォームを作っており、現在バリデーションを実装中です。
氏名入力欄に、以下の条件で制限をかけたいと思っています。
◆許可
ひらがな
全角カタカナ
CJK統合漢字
"々"
◆不許可
それ以外
発生している問題・エラーメッセージ
正規表現で以下の指定をし、preg_matchを実行してみました。
上記の許可項目のいずれかのみで構成された文字列を想定したつもりです。
$pattern = '/^(((\xE4\xB8[\x80-\xFF])|\A(\xE5)|\A(\xE6)|\A(\xE7)|\A(\xE8)|(\xE9\xBF[\x00-\xAF]))|((\xe3\x81[\x81-\xff])|(\xe3\x82[\x00-\x9f])|(\xe3\x80\x85)))+$/'; $name = '田中たろう'; print_r(preg_match($pattern, $name)); >0
試したこと
ひらがな・カタカナ・CJK統合漢字に切り分けてそれぞれ実行してみたところ、CJK統合漢字の箇所に問題がありそうです。
Regexperを利用して画像化してみましたのが以下になります。