什么是最不坏的正则表达式来拒绝绝对无效的电子邮件地址

What is the least bad regex to reject definitely invalid email addresses?

本文关键字:拒绝 电子邮件地址 无效 正则表达式 什么      更新时间:2024-01-14

可能重复:
在Javascript中验证电子邮件地址?

我知道只使用regex是无法验证电子邮件地址的,但我认为我应该能够拒绝一些明显无效的电子邮件地址,以帮助那些错误地在电子邮件地址字段中输入了不同内容(如姓名或密码)的友好用户。因此,我不想拒绝任何有效的电子邮件地址,但希望只使用正则表达式来拒绝尽可能多的无效电子邮件格式。但我想任何javascript/jquery/。。。也可以。

以下是我目前所拥有的:

^.+@.+'..+$

是的,没有用于真正验证的正则表达式,但应该有一些用于拒绝的正则表达式。不,这不会阻止任何人输入虚假地址。是的,你仍然需要发送一封确认电子邮件来验证真实性。

上面的正则表达式将从javascript中使用。

--

在.NET中,我会让.NET使用验证电子邮件格式

    try
    {
      var mailAddress = new MailAddress(possibleMailAddress);
    }

如果可以,请检查域部分的DNS记录,看看是否有电子邮件服务器。只有当DNS记录清楚地表明不可能有电子邮件服务器,或者如果没有这样的域,那么电子邮件地址才会被拒绝。然后缓存一些结果,以加快将来的查找速度。

尽管如此,我还是要发送确认电子邮件进行验证。。。

官方标准RFC 2822用以下正则表达式描述了有效电子邮件地址的语法:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21'x23-'x5b'x5d-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|'[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21-'x5a'x53-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])+)'])