如何修改正则表达式以正确验证域?

时间:2014-10-01 19:55:51

标签: javascript regex email

我找到了以下正则表达式:

/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/

在这个网站上: http://www.regular-expressions.info/email.html

并且效果很好(匹配99.99%的实际电子邮件),但有一个例外。它允许您在域后附加任何您想要的内容。

示例:

test does not match
test@domain does not match
test@domain.com does match
test@domain.co.uk does match
test@domain.comdsaf#()%@dsf,25ljsafdlfkjj&45234^\/3258afsd still matches

我也只想一次验证一封电子邮件,因此以下字符串不应匹配,尽管在电子邮件客户端中有效: test@domain.com; test2@domain.com

javascript正在使用它。

1 个答案:

答案 0 :(得分:0)

/[a-z0-9!#$%&'*+\/=?^_ {|}〜 - ] +(?:!?[A-Z0-9#$%&安培;'* + / = ^ _ {|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/

我刚刚在最后添加了美元符号,表示您希望此时输入结束。