こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2008-01-09 13:59:44

QNo.3663872

困ってます

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

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

投稿日時 - 2008-01-09 15:30:19

お礼

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

投稿日時 - 2008-01-09 20:43:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問