【发布时间】:2014-01-14 11:36:43
【问题描述】:
我已在我的代码中验证了输入电子邮件。虽然验证在 Firefox 中有效,但在 Chrome 中无效。那是;当提交诸如“example@”之类的电子邮件地址时,chrome 会将其视为有效的电子邮件地址,尽管在 Firefox 中它将被打印为无效。 (但是没有@的邮件地址会被打印为无效)
【问题讨论】:
标签: validation google-chrome email firefox html-email
我已在我的代码中验证了输入电子邮件。虽然验证在 Firefox 中有效,但在 Chrome 中无效。那是;当提交诸如“example@”之类的电子邮件地址时,chrome 会将其视为有效的电子邮件地址,尽管在 Firefox 中它将被打印为无效。 (但是没有@的邮件地址会被打印为无效)
【问题讨论】:
标签: validation google-chrome email firefox html-email
W3C draft关于html5的有效电子邮件地址input type="email":
有效的电子邮件地址是与电子邮件产生匹配的字符串 以下 ABNF 的字符集是 Unicode。这个 ABNF 实现了 RFC 1123 中描述的扩展。[ABNF][RFC5322] [RFC1034][RFC1123]
email = 1*( atext / "." ) "@" label *( "." label )
label = let-dig [ [ ldh-str ] let-dig ] ; limited to a length of 63 characters by RFC 1034 section 3.5
atext = < as defined in RFC 5322 section 3.2.3 >
let-dig = < as defined in RFC 1034 section 3.5 >
ldh-str = < as defined in RFC 1034 section 3.5 >
此要求是 RFC 5322 的 willful violation,它定义了一个 同时过于严格的电子邮件地址的语法(之前 “@”字符),太模糊(在“@”字符之后),太松散 (允许 cmets、空白字符和带引号的字符串 大多数用户不熟悉的礼仪)在这里可以实际使用。
因此,您的所有案例都不是错误,因为没有严格遵守其他规范,浏览器可以自行方便地实现电子邮件控制。
【讨论】: