2

使用 HTML5 约束验证 API 验证表单字段type="email",我注意到 Chrome 接受“aa@a”作为正确的电子邮件地址。
这样做的目的是什么 - 这是一个错误吗?定义自定义模式是不好的做法吗?

4

1 回答 1

5

这是什么目的

不排除有效的电子邮件地址。

这是一个错误吗

不 ,这是HTML5 兼容浏览器应使用的有效电子邮件地址的定义。该定义存在一个未解决的缺陷,但即使已修复aa@a,仍然是格式有效的电子邮件地址。请记住,电子邮件最早出现在 60 年代中期,我们直到 8 世纪中期才获得 DNS,许多“@ 右侧”现在对我们来说看起来有点奇怪的东西在这些旧环境中完全有效。

定义自定义模式是不好的做法吗?

当然,如果您的要求比“所有有效格式的电子邮件地址”更严格,您可以,但电子邮件验证很容易出错,尤其是今年所有新的顶级域都上线了。如果您真的关心有效的电子邮件地址(而不是有效格式的电子邮件地址),那么唯一的解决方案是将实际电子邮件发送到该地址并确认它到达(通过某种基于令牌的确认 URL,用户必须单击)。

于 2013-02-16T01:10:38.070 回答