电子邮件验证正则表达式

时间:2013-06-07 09:20:39

标签: regex email-validation

我正在使用此正则表达式来验证电子邮件地址,它工作正常。但是,它检查@之后的一个点,但这意味着它将允许这样的地址:test@test.test-com ...我需要更改它以便它在tld之前检查一个点 - 所以那个-com不会验证:

/[ÆØÅæøåA-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[ÆØÅæøåA-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[ÆØÅæøåA-Za-z0-9-]*[ÆØÅæøåA-Za-z0-9])?\.)+[ÆØÅæøåA-Za-z0-9](?:[ÆØÅæøåA-Za-z0-9-]*[ÆØÅæøåA-Za-z0-9])?/

Fiddle here

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

那么,不要在正则表达式的最后部分允许它:

/…(?# something that ends with a dot)[ÆØÅæøåA-Za-z0-9](?:[ÆØÅæøåA-Za-z0-9-]*[ÆØÅæøåA-Za-z0-9])?/
                                                                        _^_

并将其简化为

/…[ÆØÅæøåA-Za-z0-9]+/

(顺便说一下,Stop Validating Email Addresses With Complicated Regular Expressions

答案 1 :(得分:0)

如果您可以向其发送消息,则电子邮件地址有效.Even space是电子邮件地址中的有效字符

电子邮件存在各种相互矛盾的标准,许多供应商从未关注过它们。

因此,您不能仅仅制定自己的验证电子邮件的条件。即使您制作了一个电子邮件,也可以放弃许多客户。

最好使用此正则表达式

.+@.+

使用上述正则表达式验证电子邮件后,您可以向该电子邮件发送邮件并等待用户的回复。如果电子邮件地址有效,您将收到回复,如果没有,则可以认为该电子邮件地址无效


看一下这些文章