• ベストアンサー

文字列の中に2バイトが含まれているか調べたい

文字列の中に、2バイト(つまり全角)が含まれているかどうかを調べたいです。 VBなどでは、LenB(StrConv(Value, vbFromUnicode))とかで、調べられるのですが、Pealではどのような関数を用いれば良いでしょうか・ 最適な関数、あるいは手法があれば、教えてくださいませ。 よろしくお願いします。

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

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.1

正規表現で7bitコード以外の文字の有無を判定すればよいと思います。 if($str =~ /[\x80-\xff]/){   print "全角文字有り!"; }else{   print "全角文字なし"; }  ただし欧文の特殊な文字と日本語コードでかぶる部分もありますので、欧文を誤判定する可能性を回避することはできないと思います。

THUBAN
質問者

お礼

この処理の理由は、外国からの英語イタズラ投稿(掲示板への)を防止させたかったからです。 いただいたコードでバッチリできました! ありがとうございました。

関連するQ&A