• ベストアンサー

preg_matchによるカタカナチェックについて

preg_matchによるカタカナチェックについて 宜しくお願い致します。 PHPのバージョン:4.4.1 文字コード:euc-jp preg_matchでカタカナのみ入力されているかをチェックしたいと思っております。 下記の様な感じで作ったのですが、ひらがなもスルーになってしまいます。 //会社名【カナ】の適合チェック if(preg_match("/[^ァ-ヶー]+/",$hoge_kana)) { print "カタカナ以外が含まれます"; } どうすればカタカナ以外が含まれた場合にチェックできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

pregで日本語を厳密に評価できるのはurfだけです、一度utfにコンバートしてから チェックしてみてください <? header("Content-Type:text/html;charset=euc-jp"); $hoge_kana="ア"; $pattern="/[^ァ-ヶー]+/u"; $hoge_kana_utf=mb_convert_encoding($hoge_kana,"UTF8","EUC"); $pattern_utf=mb_convert_encoding($pattern,"UTF8","EUC"); if(preg_match($pattern_utf,$hoge_kana_utf)){ print "カタカナ以外が含まれます"; }?>

nikuq
質問者

お礼

ありがとうございます! ばっちりできました!! preg関数はUTF-8で最適化されてるんですね。 勉強になりました。

関連するQ&A