电子邮件验证是不是需要域部分包含一个点?
Posted
技术标签:
【中文标题】电子邮件验证是不是需要域部分包含一个点?【英文标题】:Should email validation requires the domain part contains a dot?电子邮件验证是否需要域部分包含一个点? 【发布时间】:2015-03-15 14:00:45 【问题描述】:我注意到<input type="email" />
的内置浏览器验证需要xxx@xxx
的格式。仅需要 @
字符。不需要点,比如email@***.com
。
和流行的jQuery.inputmask一样,email
别名的规则也不需要点。
我只是好奇。现在是忽略电子邮件验证中的点的标准方法吗?我没有在根级域上看到任何电子邮件地址。忽略点的原因是什么?
【问题讨论】:
Why does html5 form-validation allow emails without a dot? 的可能重复项 电子邮件很复杂,几乎任何包含@
的东西都可能是电子邮件,甚至bill@com
,这就是验证过于严格容易导致问题的原因。
谢谢,朱哈娜。它似乎是重复的。
Play framework 需要域中的点,不幸的是,因为 MS userPrincipalName(也基于 RFC-822)验证时没有点。
【参考方案1】:
RFC 822,第 6 章,给出了扩展巴科斯-瑙尔形式 (BNF) 中的地址规范:
addr-spec = local-part "@" domain
local-part = word *("." word)
domain = sub-domain *("." sub-domain)
使用此规范a@b
是一个有效的地址。
【讨论】:
规范是愚蠢的,因为现实生活中的每个电子邮件地址都有一个 .com、.net 等。忘记结尾是一个有点常见的用户错误,所以在现实生活中,遵循规范意味着很多错误的电子邮件地址被接受。 @Acyra,该规范一点也不愚蠢,因为user@localhost
是一个完全有效的电子邮件,user@com
也是如此。第二种类型的示例是,截至 2018 年 10 月,域 uz
是 TLD 可以指向的内容。如果您好奇,请查看 nslookup uz
的结果。以上是关于电子邮件验证是不是需要域部分包含一个点?的主要内容,如果未能解决你的问题,请参考以下文章