カレッヂ |
質問者 りょう
投稿日 3/11(日) 21:55:48
初歩的な質問で申し訳ないのですが・・・ メール記入で半角以外の場合にエラーとしたいのですが、 if ((!$email =~ /(.*)\@(.*)\.(.*)/) && $email ne '') { &error(miss_mail); } としても、 if (!$FORM{'email'} =~ /(.*)\@(.*)\.(.*)/) && $FORM{'email'} ne '') { &error(miss_mail); } としても、 エラーになりません。 どこがおかしいのでしょうか??? よろしくお願いします。 |
回答者 いのちゃん
[削除]
投稿日 3/12(月) 03:20:41
>if ((!$email =~ /(.*)\@(.*)\.(.*)/) && $email ne '') { &error(miss_mail); } >としても、 >if (!$FORM{'email'} =~ /(.*)\@(.*)\.(.*)/) && $FORM{'email'} ne '') { &error >(miss_mail); }> としても、 1235: if ($in{'email'} ne '' && $in{'email'} !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) 1236:{ push(@ERR,"Eメールを半角で正しく記述してください"); undef $in{'email'}; } 1237: elsif ($in{'email'} =~ /[;:,=\s]+/) { push(@ERR,"Eメールには;:,=が使えま 1238: せん"); } 上記はminibbs-ex-1.17よりコピーしたものですので有効かどうかテストして見て下さい。 |
回答者 羊相談員
[削除]
投稿日 3/12(月) 11:35:51
とほほのWWW入門では if ($str =~ /^[\x80-\xff]*$/) { print "全角文字が含まれてます"; } となっていました。 レスキューのやり方と全然違いますね。 なんでだなんでだろう。 参考 http://wakusei.cplaza.ne.jp/twn/wwwperl3.htm#IsJapanese |
回答者 しあわせのツボ
[削除]
投稿日 3/12(月) 13:02:46
レスキューさんは「半角英数にマッチさせ、マッチしないものがあったら」、 とほほさんは「半角英数では使われない文字コードにマッチしたら」、 という処理のようですね。 アルゴリズムが違うだけで、結果はほぼ同じでしょう。 (この例ではレスキューさんの方が厳格なチェックになっています) |
質問者 りょう
[削除]
投稿日 3/12(月) 18:29:38
ありがとうございます。 早速やってみたところ出来ました。 こんな初歩的なことで恥ずかしいなぁ〜と思いながらも・・・。 感動しました。 |
回答者 羊相談員
[削除]
投稿日 3/13(火) 13:17:15
そうか。 ASCIIコードの値が最も大きいDELが7Fだから ということですね。 |
質問者 りょう
[削除]
投稿日 3/14(水) 21:50:05
ところで、「データ破損の可能性あり」っていうのはどういうことなのでしょうか??? 今まで正常だったのですが・・・。 原因がさっぱりわかりません。 どなたか教えて下さい。 |
返信(回答)する
Web裏技 |