JavaScript中的电子邮件正则表达式验证允许在中间使用少量字符(#$%&* etc)但不应以连字符开头或结尾( - )[重复]

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

这个问题在这里已有答案:

电子邮件格式如:local_part @ domain_part.com --------------

它应该是alphanuneric Local_part和domain_part仅包含中间的字符(#$%&* - etc)。 Local_part和domain_part不应以连字符开头或结尾( - ) local_part的长度限制:64&domain_part:255

提问于
用户回答回答于

我想这会奏效

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

https://regex101.com/r/ua3HBm/1

 ^                                        # BOS
 (?! - )                                  # Does not start with a dash
 [a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+         # Local
 (?<! - )                                 # Does not end with a dash
 @ 
 [a-zA-Z0-9]                              # Domain
 (?:
      [a-zA-Z0-9-]{0,61} 
      [a-zA-Z0-9] 
 )?
 (?:
      \. 
      [a-zA-Z0-9] 
      (?:
           [a-zA-Z0-9-]{0,61} 
           [a-zA-Z0-9] 
      )?
 )*
 $                                        # EOS
用户回答回答于

所以基于你有限的描述,你好像在寻找这样的东西

这是模式: ^(?<localpart>[^-].*[^-])@(?<domainpart>[^-].*[^-])\..{2,3}$

它将它们保存到命名捕获组中,并假定localpart和domainpart都包含至少2个字符(它们应该)。两个部分都不允许开始或结束-

是否还有其他要求,或者这几乎涵盖了它吗?

扫码关注云+社区

领取腾讯云代金券