为什么“ a @ a”通过电子邮件输入的内置验证?

时间:2018-11-21 23:31:28

标签: html html5 validation

我创建了具有以下标记的输入:

<input name="contactEmail" type="email" required>

我为input:invalid添加了一个CSS类,为它提供了一个红色边框,然后通过输入a@a作为值对其进行了测试,并将该字段标记为有效。当它显然不是有效的电子邮件时,为什么这将是有效的输入呢?关于类型emailMDN 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确实匹配它。所以我想问题变成了为什么正则表达式可以满足所有这些要求?

2 个答案:

答案 0 :(得分:1)

主机名不必具有与其TLD关联的域。一个常见的例子是localhost

答案 1 :(得分:0)

没有什么无效的。就这么简单。

没有理由不能在主机a上呼叫邮箱a