dポイントプレゼントキャンペーン実施中!

入力フォームに全角・半角スペースがある場合に、
データを受け取ったCGIのほうで、エラーメッセージを出そうとおもうのですが、

if ($name_l eq ' ' or $name_l eq ' '){ $errMsg .= ',Name'; $errNum++; $e_name_l = 1; }

上記のやり方だと、複数フォームにスペースが入力された時に、エラーの指事がでないのです。
どなたかご教授お願いいたします。

A 回答 (4件)

すみません、'~='ではなく、'=~'でしたね。


S-JISによる検索は確かにどうもうまくいかないケースが多いようです。jcode.pl等で一度EUC-JPへ変換すればうまく行くはずです。
    • good
    • 0
この回答へのお礼

有難うございました。
教えていただいた。perlメモを参考にして、
解決することができました。

お礼日時:2003/05/09 19:41

if ( $name_l =~ /\x81\x40+|\S+/ ) {


...

で、どうでしょうか?
動作確認はしておりません。

# SJISの正規表現はあまり思わしくないんですよね・・・。
    • good
    • 0

さらに半角スペースの正規表現は'\x20'、全角スペースは


シフトJISが'(?:\x81\x40)'でEUC-JPが'(?:\xA1\xA1)'ですから、文字列をシフトJISかEUC-JPに変換してから、
if ($name_I ~= '\x20'or $name_I ~= '(?:\xA1\xA1)')
とやるのが良いかも。

参考URL:http://www.din.or.jp/~ohzaki/perl.htm#Character

この回答への補足

Min_2さん
素早いご返事ありがとうございます。
ご指摘の通りに指示を入れたのですが、
サーバーエラー500がでてしまい。
うまく動作しませんでした。

ちなみに、cgiの文字変換はシフトJISでした。
なにが原因でしょう?

補足日時:2003/04/10 18:21
    • good
    • 0

if ($name_I eq ' ')ではなく、


if ($name_I =~ ' ')ではないですか?

参考URL:http://tohoho.wakusei.ne.jp/wwwperl1.htm#CompStr …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!