有效电子邮件地址(如gmail.com)的jquery电子邮件验证

时间:2012-07-19 01:52:12

标签: jquery validation email

 $('#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。 任何人都可以建议上述要求的代码。 提前谢谢

3 个答案:

答案 0 :(得分:1)

如果您只是检查简单的电子邮件地址,则可以使用此正则表达式提取域,然后根据预制列表进行检查。你也可以制作一份非法名单,并对其进行检查。

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/

答案 1 :(得分: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;
                }
    });    
});

工作形象

enter image description here

答案 2 :(得分: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建议的特定域名?