繁体   English   中英

电子邮件验证Javascript RegExp

[英]Email validation Javascript RegExp

借助此RegExp,我可以轻松检查电子邮件是否有效:

RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);

但是,对于这样的地址,这只是返回true:

example@example.com

我也想接受:

*@example.com

我需要对RegExp应用哪些更改?

提前致谢

要从字面上回答您的问题,您可以“增强”您的正则表达式:

RegExp(/^([\w.*-]+@([\w-]+\.)+[\w-]{2,4})?$/);

但这是用于电子邮件验证的可怕正则表达式。 正则表达式是错误的工具 您为什么坚持要这样做呢

检查电子邮件地址不是那么简单,请参阅。 RFC 822,秒6.1

可以在http://www.regular-expressions.info/email.html上找到大量的正则表达式,描述了RFC一致性和实用性之间的折衷。

有两件事:接受*@foo.bar

var expression = /^([\w-\.*]+@([\w-]+\.)+[\w-]{2,4})?$/;//no need to pass it to the RegExp constructor

但是此表达式确实接受-@-.-- ,但是正则表达式和电子邮件并不是一个很好的朋友。 但是根据您的表情,这是一个不太可靠的版本:

var expression = /^[\w-\.\d*]+@[\w\d]+(\.\w{2,4})$/;

不过,有一个表达式可以验证网络上某处的所有有效类型的电子邮件地址。 研究一下,看看为什么正则表达式验证几乎总是会排除有效输入或太宽容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM