■ UTF8で全角カタカナの入力チェック
Perl スクリプトなんですけど、入力値がカタカナかどうかをチェックしたくて以下のようにやりました。
もっとちゃんとしたやり方がありそうなので誰か知っていたら教えて下さい。
入力も出力も UTF8 です。変数 $kana にはチェックしたい文字列が入っているとして…。
utf8::decode($kana); if($kana !~ /^([\x{30A1}-\x{30F6}])+$/) { print "全部カタカナで入力しろやゴルァ。"; }
こんな感じ。
少しばかり試した感じでは、utf8::decode などで UTF8 フラグを付与してからじゃないと正規表現でチェック出来ないようなのですが、間違ってませんよね?というか、正規表現はこれで正しいのかも??だし。文字コードとかの事はほんと良く知らないのでヘルプミー。
EUC-JP や SJIS の場合は Perl メモ のやり方で出来るのは知っています。
Posted by Kyosuke Takayama at 2005-09-01 (Thu) 15:43 printable version