正则表达式验证电子邮件错误 - 使用JavaScript(Regex email verificat

2019-07-29 04:58发布

//if HTML5 input email input is not supported
if(type == 'email'){    
    if(!Modernizr.inputtypes.email){ 
         var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@([a-zA-Z0-9\-])+\.+([a-zA-Z0-9]{2,4})+$/;              
         if( !emailRegEx.test(value) ){ 
            this.focus();
            formok = false;
            errors.push(errorMessages.email + nameUC);
            return false;
        }
    }
}

这是我的检查,如果电子邮件的格式是正确的JavaScript正则表达式。 但是当我自己试试吧它显示任何没有错误.. @ ..它不检查.com或任何到底。 我究竟做错了什么?

Answer 1:

您需要使用实际为适合电子邮件地址的正则表达式。 您当前的一个被完全打破,因为有吨的有效地址,也不会接受。

见http://www.regular-expressions.info/email.html了更详细的说明和论证为什么正则表达式是不是一个好主意。

总之,这里的一个可能适合您的需求:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

下面是regular-expressions.info说,这个正则表达式:

我们得到RFC 2822的更实际的实施,如果我们使用双引号和括号忽略的语法。 它仍然会在实际使用中今天匹配的所有电子邮件地址的99.99%。



文章来源: Regex email verification error - using JavaScript