• ベストアンサー

php言語の全角入力のチェック方法を教えてください

php4ですけど、全角チェックに使える関数はありませんか? 人名チェックで使いたいんですけど、 漢字の可能性もあり、カタカナもあり、平がなもありますから、どうやってチェックをするか、ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

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

  • ベストアンサー
  • kaiu
  • ベストアンサー率20% (65/315)
回答No.3

mb_convert_kana($string,,) で変換した方がいいような気がします。 isset("", $string) ereg("", $string) 文字入力チェックで使いますが、 ""にカナ、数字、英字の半角入力を!や^とかで 否定してやればいいのかな。 役に立ちそうなURL載せときます。 がんばってくださいね。 http://takeoba.cool.ne.jp/moreJava/javaScript5.htm http://php.s3.to/man/function.mb-convert-kana.html

knowledge_worker
質問者

お礼

今回は、英文字(大文字、小文字)と半角数字以外が全部全角文字としました。 function Check( $str ) { if( ! ereg( "^[\x41-\x5A|\x61-\x7A|\x30-\x39]+$", $str ) ) { return False; } return True; } 皆さんの丁寧な回答ありがとう、ございました。

knowledge_worker
質問者

補足

$str = mb_convert_kana($str, "KV"); $str = mb_convert_kana($str, "HV"); を使用してから

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 残念ながら、一般的な方法は無い。mb_stringに依存してしまうと、mg_stringをサポートしていない環境で動作しなくなってしまう。  私は以前PHPでWeb予約のシステムを構築した事があるのだが、その時は日本語を全てjcode.phpでEUCに変換した後、バイト列として1文字1文字全部チェックしていくようにした。EUCのコード表を全部調べあげて、各文字種を特定するように作り上げた。  そのようなルーチン群を作成して、ライブラリ化しておけば良いだろう。

すると、全ての回答が全文表示されます。
回答No.1

全角を正規表現で表すには、内部エンコーディングの文字コード表を参照して範囲指定します。euc-jpでしたら[ぁ-んァ-ヶ亜-瑤]ですね。あ、それに加えて英数字記号等あるんですが、うちではこのチェックの前に mb_convert_kana("as",$str)に通して英数字を全部半角にしているので正規表現では含めていません。もし必要でしたら同じように文字コード表を参照して範囲指定して下さい。

参考URL:
http://www2.famille.ne.jp/~akio1998/l_x112.html
すると、全ての回答が全文表示されます。

関連するQ&A