[英]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.