我创建了具有以下标记的输入:
<input name="contactEmail" type="email" required>
我为input:invalid
添加了一个CSS类,为它提供了一个红色边框,然后通过输入a@a
作为值对其进行了测试,并将该字段标记为有效。当它显然不是有效的电子邮件时,为什么这将是有效的输入呢?关于类型email
,MDN says的输入的有效值:
简单来说,这意味着username@domain.tld
但是,这显然与任何旨在查找该模式的正则表达式都不匹配。那...给什么?
编辑:
根据MDN,这是在兼容的浏览器中用于电子邮件验证的算法:
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
我还没有分开,但是a@a
确实匹配它。所以我想问题变成了为什么正则表达式可以满足所有这些要求?
答案 0 :(得分:1)
主机名不必具有与其TLD关联的域。一个常见的例子是localhost
。
答案 1 :(得分:0)
没有什么无效的。就这么简单。
没有理由不能在主机a
上呼叫邮箱a
。