电子邮件地址的本地部分是否具有最小长度要求?

时间:2011-07-19 17:26:57

标签: regex vb.net

我正在使用此表达式来验证电子邮件地址:

"^[_a-z0-9-]+(.[a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$"

我注意到为了验证电子邮件地址,我需要在@符号前加上至少3个字符。这是一个要求吗?如果我只想在@符号前面有一个或两个字符的电子邮件地址怎么办?

4 个答案:

答案 0 :(得分:9)

完全有可能只有一个字符的电子邮件地址。所有指南都在RFC822中定义:http://www.ietf.org/rfc/rfc0822.txt?number=822

必要的REGEX:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

答案 1 :(得分:1)

你的正则表达式很糟糕。你真的应该改变它。即使Microsoft提供了更灵活的变体:

"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$"

是的,很长。但是你应该编写好的程序,而不是快速开发的程序。

答案 2 :(得分:0)

0 (如果您不计算双引号)。如果这样做,则最低为1。

  

“”“ @ example.com

     

a@example.com


RFC 5321

   Mailbox        = Local-part "@" ( Domain / address-literal )

   Local-part     = Dot-string / Quoted-string
                  ; MAY be case-sensitive


   Dot-string     = Atom *("."  Atom)

   Atom           = 1*atext

   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

答案 3 :(得分:-2)

我继续前进并决定使用这个:

"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"

它允许我为本地部分输入1个或多个字符。