【发布时间】:2020-06-20 05:39:02
【问题描述】:
我正在尝试构建一个正则表达式来检测有效的电子邮件。我在 Stack Overflow 上浏览了一些文章。我还阅读了section 3.4.1 of RFC 2822,它描述了电子邮件地址的不同组成部分:
addr-spec = local-part "@" domain
local-part = dot-atom / quoted-string / obs-local-part
domain = dot-atom / domain-literal / obs-domain
domain-literal = [CFWS] "[" *([FWS] dcontent) [FWS] "]" [CFWS]
dcontent = dtext / quoted-pair
dtext = NO-WS-CTL / ; Non white space controls
%d33-90 / ; The rest of the US-ASCII
%d94-126 ; characters not including "[",
; "]", or "\"
用简单的英语,有人能解释一下上面的定义吗?是否允许使用info@[192.168.0.1] 之类的电子邮件?
我知道我不必重新发明轮子,而且我可以使用一些很好的库来验证电子邮件。我只是想了解事情在幕后是如何运作的。
【问题讨论】:
-
你为什么要构建已经存在的东西?如果不是出于教育目的,请不要自行进行电子邮件验证。
标签: regex ip-address email-validation