我已在我的代码中验证了输入电子邮件。尽管验证在Firefox中有效,但它在Chrome中无效。那是;当提交像'example @'这样的电子邮件地址时,chrome会将其作为有效的电子邮件地址,尽管在Firefox中它会被打印为无效。 (但是没有@的电子邮件地址将被打印为无效)
答案 0 :(得分:1)
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 ,它定义了一个 电子邮件地址的语法同时过于严格(之前 “@”字符),太模糊(在“@”字符之后),太松懈了 (允许使用注释,空格字符和带引号的字符串 大多数用户不熟悉的方式)在这里有实际用途。
因此,所有案例都不是错误,因为没有严格遵守其他规范,浏览器可以自行实现电子邮件控制。