Mar*_*ino 7 javascript regex validation email-validation
我知道这里有很多关于电子邮件验证和特定RegEx的问题.我想知道验证电子邮件的最佳做法是什么username+anythingelse@gmail.com
(详见此处).我当前的RegExp for JavaScript验证如下,但它不支持+
句柄中的额外内容:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
Run Code Online (Sandbox Code Playgroud)
有没有其他服务支持额外的+
?我应该+
在地址中允许a 或者我是否应该更改RegEx以仅允许其发送带有gmail.com
或googlemail.com
作为域的电子邮件?如果是这样,会有什么改变的RegEx?
更新:
感谢大家指出+
每个规范都有效.我不知道,现在为未来做.对于那些说甚至使用RegEx来验证它的人来说,我的理由完全基于我正在构建的创意设计.我们的客户的设计在电子邮件地址输入旁边放置绿色支票或红色X以模糊它.该图标表示它是否是一个有效的电子邮件地址,所以我必须使用一些JS来验证它.
Ben*_*n S 11
+
是电子邮件地址中的有效字符.域名不是gmail.com或googlemail.com并不重要
正则表达式实际上并不是验证电子邮件的好方法,但如果您只想修改正则表达式以处理加号,请将其更改为以下内容:
/^([a-zA-Z0-9_.-\+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
Run Code Online (Sandbox Code Playgroud)
作为此正则表达式如何不对规范进行验证的示例:电子邮件..@-.com
根据它有效.
如果您需要通过regexp验证电子邮件,请阅读标准或至少阅读本文.
该标准建议使用此正则表达式:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Run Code Online (Sandbox Code Playgroud)
如果那不吓到你,那应该:)