【问题标题】:Constraint Validation API for input type="email"?输入类型 =“电子邮件”的约束验证 API?
【发布时间】:2013-02-16 09:10:38
【问题描述】:

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

【问题讨论】:

  • 理论上只有顶级域的地址是有效的。 (另一方面,单个字母不是有效的 TLD。)

标签: html forms validation constraints


【解决方案1】:

这样做的目的是什么

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

这是一个错误

没有。 Here is the definition of a valid email address 兼容 HTML5 的浏览器应该使用哪些。有一个 open defect 反对该定义,但即使已修复 aa@a 仍然是一个格式有效的电子邮件地址。请记住,email first came about in the mid-sixties,我们didn't get DNS until the mid-eightes,很多“@ 右侧”的东西现在看起来有点奇怪,但在这些旧环境中完全有效。

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

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

【讨论】:

  • 好的哇,谢谢你的回答!我知道在一个模式中获得所有可能的电子邮件格式几乎是不可能的 - 实际上每个搜索完美电子邮件 RegEx 的人都会知道这一点 - 所以实际上不那么严格是有意义的自定义规则的机会。实际上,我在 60 年代中期还没有考虑过电子邮件地址!
猜你喜欢
  • 2011-10-19
  • 2018-02-07
  • 2015-03-24
  • 2023-03-29
  • 2020-03-14
  • 2014-03-01
  • 1970-01-01
  • 2015-07-02
  • 2018-01-12
相关资源
最近更新 更多