• ベストアンサー

コンマ(,)を入力を禁止させたい

お世話になります。 フリー配布のCGI(Perl)をちょっと改造しているのですが カンマを禁止したり別の文字に置き換えたりって 方法ありますか? コンマで区切っているタイプのCGIなので、 訪問者さんが本文中にコンマを入力して データがズレまくってしまいます; 禁止ワードにすればいいのかと思って if($in{"name"} ~ /,/ ){ &error('コンマの使用は禁止されています'); } と、入れてみたらエラーになってしまいました; 何か方法ありませんか? よろしくお願いします。

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

  • ベストアンサー
  • ariman_
  • ベストアンサー率45% (27/59)
回答No.3

すみません。No.2で、半角で記述したので、両方とも,で表現されてますね。 $in{"name"} =~ s/,/,/g; 実際には「,」は、全て半角で記述して下さい。

その他の回答 (2)

  • ariman_
  • ベストアンサー率45% (27/59)
回答No.2

JavaScriptの処理だけではなく(無効のブラウザでは意味が無いので)、CGIスクリプト側でも対処した方が良いです。 実態参照に変換してみては。 $in{"name"} =~ s/,/,/g; これ以外にも、ログに書き込まれる、入力フォームのvalue値全てを変換処理した方が良いでしょう。

回答No.1

>コンマで区切っているタイプのCGIなので、 本来CSV形式の場合、文字列中に「,」を使うなら「"」でくくるのが本来の使い方何ですけどね。 それをしてないとなるとソースを自分でいじれるならそれに準じたように書き直すかですね。 手っ取り早いのはhtml側の入力フォームでJavaScriptで入力チェックで「,」を使えないようにするですね。 そうすればPerl側ではとりあえずは処理しなくてもいい(厳密な処理をしたいならPerl側でも必要ですが)

monica_panda
質問者

お礼

ご返答ありがとうございます! あっ…なるほど!確かにJavaScriptだけでも出来ますね(´△`;)ゞ 目からウロコでした!早速やってみます。 助かりました!(^^)

関連するQ&A