プロが教えるわが家の防犯対策術!

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

A 回答 (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

この回答への補足

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

補足日時:2005/06/03 10:50
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/03 10:39

 残念ながら、一般的な方法は無い。

mb_stringに依存してしまうと、mg_stringをサポートしていない環境で動作しなくなってしまう。

 私は以前PHPでWeb予約のシステムを構築した事があるのだが、その時は日本語を全てjcode.phpでEUCに変換した後、バイト列として1文字1文字全部チェックしていくようにした。EUCのコード表を全部調べあげて、各文字種を特定するように作り上げた。
 そのようなルーチン群を作成して、ライブラリ化しておけば良いだろう。
    • good
    • 0

全角を正規表現で表すには、内部エンコーディングの文字コード表を参照して範囲指定します。

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

参考URL:http://www2.famille.ne.jp/~akio1998/l_x112.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!