【发布时间】:2023-01-02 21:24:29
【问题描述】:
根据维基百科,这些是有效的电子邮件地址。
" "@example.org
"john..doe"@example.org
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
postmaster@[123.123.123.123]
postmaster@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]
<input type="email"> 拒绝他们无效。
此外,根据维基百科,此地址无效。
1234567890123456789012345678901234567890123456789012345678901234+x@example.com
然而<input type="email"> 接受它是有效的。
为什么<input type="email"> 的实现如此不精确?
我知道 HTML 标准指定了与此行为一致的特定验证正则表达式。但为什么它在形式上是不正确的呢?
请注意,我并不是要比默认正则表达式或任何其他实用解决方案更好的正则表达式。我要求解释为什么有人认为以形式上不正确的方式验证电子邮件是个好主意。
【问题讨论】:
-
维基百科不是可靠的来源,因为允许多个用户编辑。此外,输入标签遵循正则表达式,您可以看到 here。
-
我假设您必须在您使用的浏览器的问题跟踪器中询问这个问题。我怀疑您的问题是否有一个符合所有浏览器行为的通用答案
-
您可以在这里查看:html.spec.whatwg.org/multipage/input.html#valid-e-mail-address 以了解电子邮件验证的规范。浏览器的实现可能会有所不同
标签: html email-validation html-input