【问题标题】:Chrome email validation not workingChrome 电子邮件验证不起作用
【发布时间】:2014-01-14 11:36:43
【问题描述】:

我已在我的代码中验证了输入电子邮件。虽然验证在 Firefox 中有效,但在 Chrome 中无效。那是;当提交诸如“example@”之类的电子邮件地址时,chrome 会将其视为有效的电子邮件地址,尽管在 Firefox 中它将被打印为无效。 (但是没有@的邮件地址会被打印为无效)

【问题讨论】:

    标签: validation google-chrome email firefox html-email


    【解决方案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,它定义了一个 同时过于严格的电子邮件地址的语法(之前 “@”字符),太模糊(在“@”字符之后),太松散 (允许 cmets、空白字符和带引号的字符串 大多数用户不熟悉的礼仪)在这里可以实际使用。

    因此,您的所有案例都不是错误,因为没有严格遵守其他规范,浏览器可以自行方便地实现电子邮件控制。

    【讨论】:

    • 听到这个消息真是令人沮丧。这些不是很好的规范,并且要求开发人员仍然在电子邮件字段上使用自定义验证。
    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 2012-08-19
    • 2019-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多