电子邮件ID最后接受多次(.com)

时间:2012-12-20 12:19:33

标签: asp.net regex validation email

我正在一个网站上工作,我写了以下正则表达式来验证电子邮件ID并在正则表达式验证器中使用正则表达式。正则表达式是

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

它接受了我预期的有效电子邮件ID。但是,当我的质量保证进行负面输入测试时,如ak@gmail.com.com.com.com,那么它允许并说电子邮件ID有效。我已经搜遍了所有地方,并且几乎尝试了所有方面来解决这个问题。任何人都可以帮我限制上面的邮件ID。实际上,可以接受ak@gmail.co.in之类的电子邮件ID,但是.之后的最后一个字符串会重复出现问题。请帮忙。我正在使用dot net 2005。

3 个答案:

答案 0 :(得分:1)

RFC822中指定的有效电子邮件格式非常复杂,正则表达式可能不是the best tool来解析和验证它们。如果您仍想使用正则表达式,则应考虑检查Validate email address in Javascript?parse email with regex in c#的答案。

TL; DR:不要使用正则表达式来验证电子邮件地址。而是使用真正的RFC822解析器,并检查域是否存在DNS MX记录,并尝试向该地址发送电子邮件,其中包含可用于验证已收到电子邮件且用户拥有该地址的链接

答案 1 :(得分:1)

ak@gmail.com.com.com.com在语法上是正确的。但是,gmail.com.com.com.com没有MX记录,这使得它无法访问,但无效。

如果要检查这一点,首先应检查语法(使用该正则表达式),然后查找主机名的MX记录。

我还想指出你正在使用的正则表达式确实错误,并且会使许多有效的邮件地址无效。

答案 2 :(得分:-2)

添加以下表达式以查看电子邮件

 ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"