我正在使用此正则表达式来验证电子邮件地址,它工作正常。但是,它检查@之后的一个点,但这意味着它将允许这样的地址: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])?/
任何人都知道如何解决这个问题?
答案 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是电子邮件地址中的有效字符
电子邮件存在各种相互矛盾的标准,许多供应商从未关注过它们。
因此,您不能仅仅制定自己的验证电子邮件的条件。即使您制作了一个电子邮件,也可以放弃许多客户。
最好使用此正则表达式
.+@.+
使用上述正则表达式验证电子邮件后,您可以向该电子邮件发送邮件并等待用户的回复。如果电子邮件地址有效,您将收到回复,如果没有,则可以认为该电子邮件地址无效
看一下这些文章