-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
    }
}

注意:列表中使用前导“-”以确保我们永远不会匹配 javascript 对象上的任何内置方法名称,例如“keys”或“create”,这会为某些单词提供错误的答案。

工作演示:http: //jsfiddle.net/jfriend00/rTzUd/

于 2012-07-19T02:01:14.130 回答
1

请试试这个:工作版本: 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 回答