• ベストアンサー

Perlで半角英数字以外の入力を拒否するには

全く想像がつかないので、ご回答お願いいたします。 現在Perlで簡単なプログラムを作成しているのですが、全角で何かを入力するとプログラムがフリーズしてしまいます。これを防ぐために、半角の英数字以外の入力をシャットアウトしたいのですが、その判定をするにはどういうプログラムを入れればよいでしょうか。 データはPOSTで送っており、運用上、全角文字だけでなく、できれば半角カナも排除したいのですが……。 よろしくお願いいたします。

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

  • ベストアンサー
  • feininger
  • ベストアンサー率41% (74/180)
回答No.1

$strに半角英数字以外の文字が含まれたらexitするコードはこんな感じです。 改行もスペースも@なんかもexitされますのでご注意。 if ($str =~ /[^0-9A-Za-z]/) {exit;} ただ、フリーズするということはどこかに地雷が眠っているということでもあるので、これを機会にどこでフリーズしているかは調べておいたほうが良いですよ。地雷を踏ませないようにするよりも、地雷そのものを処置したほうが安心ですし。

Wingard
質問者

お礼

ありがとうございました、おかげでうまくいきました^^ フリーズについてですが、友達がデバッグしてくれてたので詳しいことがわからなかったのですが、よく調べてみるとフリーズはしていないことがわかりましたので、これに関しても問題はなさそうです。 本当にありがとうございました。

関連するQ&A