電子書籍の厳選無料作品が豊富!

今、フォームを作っているところなのですが、
各必須事項は入力されていないと戻るように設定していますが、同じ形でメールアドレスもチェックしたいのですが、その際にxxx@***.xxxという正規の形でないと引っ掛かるようにしたいのですが、どうすればよいでしょうか?お分かりの方、是非教えてください。
よろしくお願いします。

--------------------------------------------
現在のスクリプトは以下のような感じです。
これでは、大文字などでメールアドレスを入れられてもチェックを通してしまいますので。。

function check(){
if(document.FF.お名前_漢字.value == ""){
alert("お名前_漢字を入力してください");
document.FF.お名前_漢字.focus();
return(false);
}
if(document.FF.住所.value == ""){
alert("住所を入力してください");
document.FF.住所.focus();
return(false);
}
if(document.FF.email.value == ""){
alert("メールアドレスを入力してください");
document.FF.email.focus();
return(false);
}
return(true);
}
--------------------------------------------
そして送信ボタンを押すと、このスクリプトが働くように、

onSubmit="return check()"
を設定しています。

A 回答 (4件)

#3です。


修正します。

(×)
document.FF.email.value.match(/^[0-9a-z_\-.]+@[0-9a-z_\-.]+$/)

(○)
!document.FF.email.value.match(/^[0-9a-z_\-.]+@[0-9a-z_\-.]+$/)


正否を逆にしてました。
失礼。
    • good
    • 0
この回答へのお礼

to_kyo様。
できました!!!ありがとうございます。
しっかり、正しい入力かをチェックして間違っていれば、その欄に戻る。というまさに私が求めていたことができました!!!
ありがとうございましたm(__)m

お礼日時:2005/12/01 12:05

>半角で@マークが入って。

程度
であれば
document.FF.email.value == ""
となってるのを
document.FF.email.value.match(/^[0-9a-z_\-.]+@[0-9a-z_\-.]+$/)
とすることで対応可能(?確認してませんので参考程度に。。)。

ドメイン部分ユーザ部分ともに半角アルファベットと半角数字と半角の「-_.」のみ入力可能にしてあります。
そのあたりのカスタマイズは
↓参考リンクで勉強してください。

参考URL:http://www.tohoho-web.com/js/regexp.htm
    • good
    • 0

がると申します。


ちぃと蛇足ですが。「xxx@***.xxx」という形式からずれた「正しい」メールアドレスもありますので一応ご注意を。

もうちょっと具体的に書きますと。
@を境に、前のほうを「ユーザ部分」、後ろのほうを「ドメイン部分」と呼称しますが。
ドメイン部分は割合にかっちりとした規則があるです。
先頭は.で始まらないとか英数字と-が使えるとか.は二重には重ならないとか。
そのあたりを正規表現(Perl用)で書きますと
((([a-zA-Z0-9])|([a-zA-Z0-9])(([a-zA-Z0-9])|-)*([a-zA-Z0-9]))\.)*(
([a-zA-Z])|([a-zA-Z])(([a-zA-Z0-9])|-)*([a-zA-Z0-9]))\.?
とこんな感じになります。
# 比較的シンプルなほうです。一応。

問題はユーザ部分で。
案外しられていないのですが、ユーザ部分に@だのスペース(空白)打のという文字列が入るアドレスは(記述の仕方はあるのですが)「正しいアドレスである」と規定されています From RFC。

なので、メールアドレスのチェックをされるときはそのあたりで「どの辺までチェックするか」をきちんと意識されておくことを強くお勧めいたします。
ちなみに、「まじめに」チェックする場合のサンプルを参考URLに付記しておきます。

参考URL:http://www.din.or.jp/~ohzaki/perl.htm#Mail
    • good
    • 0
この回答へのお礼

がる様、ありがとうございます。正規アドレスと言っても難しいのですね。。とりあえず半角で@マークが入って。程度でもいいかもしれません。。
参考URLにも訪問してみましたが、perlでしたので勉強不足の私には設定方法などがいまいち理解できませんでした(._.) javascriptでうまく行く方法があればいいのですが。。。

お礼日時:2005/11/30 23:04

正規表現ですね。


このサイトにサンプルがあります。
http://www.openspc2.org/reibun/javascript/regexp …

参考URL:http://www.openspc2.org/reibun/javascript/regexp …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
実は、こちらのサイトにもお伺いして試してみていたのですが、チェックはできるものの、他のチェック(私がすでに記入しているスクリプト)のように引っ掛かった場所まで画面が戻ってくれないのです。
何せ、私はjavascriptに関する基礎知識がなく、サンプルを切り貼りして使用させてもらっているもので、応用がきかなくて…
申し訳ありませんが、上記のスクリプトのように、正しく入力されていない場合はその欄まで画面が戻る。という風にできないでしょうか。。。
何か方法があれば、ご連絡いただけると嬉しいです。 

お礼日時:2005/11/30 23:11

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