-1
 $('#reg_submit').click(function () {
               var reg_email = $('#reg_email').val();


 var errorMessage = '';
 if (reg_email == '') {
 errorMessage = "please enter email";
 $('#msg_regemail').html(errorMessage).show();
} else {
if ((!(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/im.test(reg_email)))) {
errorMessage ="please enter valid email id" ;
$('#msg_regemail').html(errorMessage).show();
} else {
 $('#msg_regemail').html('').hide();
} 
}

空のメール フィールドと無効なメール フォーマットをチェックするためのこのコードがありましたが、gmail.com、yahoo.com などのメール アドレスを検証する必要があります。xyz@xy.com と入力すると、無効な電子メールのようなエラー メッセージが表示されるはずです。したがって、jquery は gmail.com などの電子メール ID のみを受け入れる必要があります。上記の要件のコードを提案できる人はいますか。前もって感謝します

4

3 に答える 3

3

単純な電子メール アドレスを確認するだけの場合は、この正規表現を使用してドメインを抽出し、事前に作成されたリストと照合して確認できます。また、不正なリストを作成して、それに対してチェックすることもできます。

var legalDomains = {
    "-yahoo.com": true,
    "-gmail.com": true,
    "-hotmail.com": true,
    "-msn.com": true
};

var matches = reg_email.match(/@(.*)$/);
if (matches) {
    // matches[1] is the part after the @ sign in the email address
    if (("-" + matches[1]) in legalDomains) {
        // found the domain in the permitted list
    }
}

注: リストの先頭の「-」は、特定の単語に対して間違った答えを返す「keys」や「create」などの JavaScript オブジェクトの組み込みメソッド名と一致しないようにするために使用されます。

実際のデモ: http://jsfiddle.net/jfriend00/rTzUd/

于 2012-07-19T02:01:14.130 に答える
1

Plz はこれを試してください:作業バージョン: http://jsfiddle.net/Uummr/2/show/ コード http://jsfiddle.net/Uummr/2/

許可されている合法的なドメインのソースが必要なだけで、残りは魅力のように機能します. この場合、法的な電子メール以外の電子メールは受け付けません。var emailLegalReg = /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!aol.com)([\w-]+\.)+[\w-]{2,4})?$/;

これを読んでください:(私はこれの反対をしました)http://www.designchemical.com/blog/index.php/jquery/email-validation-using-jquery/

これが原因に役立つことを願っています:)

コード

// prepare the form when the DOM is ready
$(document).ready(function() {

        $('#btn-submit').click(function() {  

                $(".error").hide();
                var hasError = false;
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                var emailLegalReg =  /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!aol.com)([\w-]+\.)+[\w-]{2,4})?$/;

                var emailaddressVal = $("#UserEmail").val();
                if(emailaddressVal == '') {
                    $("#UserEmail").after('<span class="error">Please enter your email address.</span>');
                    hasError = true;
                } else if(!emailReg.test(emailaddressVal)) {    
                    $("#UserEmail").after('<span class="error">Enter a valid email address.</span>');
                    hasError = true;
                } else if(emailLegalReg.test(emailaddressVal)) {    
                    $("#UserEmail").after('<span class="error">No eamil apart from gmail, hotmail or yahoo is allowed.</span>');
                    hasError = true;
                }

                if(hasError == true) { return false; }
                else {
                    $("#UserEmail").after('<span class="error">Email accepted.</span>');
                    return false;
                }
    });    
});

作業イメージ

ここに画像の説明を入力

于 2012-07-19T02:14:05.493 に答える
0

より複雑なもの(私が作成したものではありませんが、これを使用しています)

if(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)){
validated = true;
}

@jfriendが提案するように、特定のドメインを探していますか?

于 2012-07-19T02:07:24.580 に答える