0

我正在使用这个正则表达式来验证电子邮件地址,它工作正常。但是,它会在 @ 之后检查一个点,但这意味着它将允许这样的地址: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])?/

在这里拉小提琴

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

4

2 回答 2

1

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

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

并将其简化为

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

(顺便说一句,停止使用复杂的正则表达式验证电子邮件地址

于 2013-06-07T09:38:51.330 回答
0

如果您可以向其发送消息,则电子邮件地址是有效的。即使空格也是电子邮件地址中的有效字符

电子邮件有各种相互冲突的标准,许多供应商从未遵循它们。

因此,您不能只为验证电子邮件制定自己的标准。即使您制定了标准,也会失去许多客户

你最好使用这个正则表达式

.+@.+

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


看看这些文章

于 2013-06-07T10:00:19.063 回答