2005-09-01 (Thu)

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

この記事へのコメント

コメントはお気軽にどうぞ

Cookie に保存しますか?


・スパム対策のため、http:// を含むコメントの投稿は出来ません。
・スパムチェックのため、投稿がすぐに反映されない場合があります。
・メールアドレス入力欄には何も入力しないでください。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/524


 
Copyright (C) Kyosuke Takayama, All rights reserved.