为什么这个Angular电子邮件验证是有效的?

7

如果你访问这里,并尝试输入me@mail,你会发现指令显示电子邮件字段是有效的。为什么呢?

3个回答

17

域名并不需要带有点号。那么例如localhost呢?

root@localhost是一个完全有效的电子邮件地址。如果给您的系统取了一个名字(比如,mail),那么root@mail也是有效的。如果你还有一个用户me,那么最后me@mail也是有效的。


抱歉我没有说明清楚。确切地说,我指的是域名中缺少的点号。 - Geo
没问题 - 我可以读懂字里行间的意思(至少这一次成功了;-))。 - Golo Roden
root@localhost 可能是潜在安全问题的指标。 - Gerardo Buenrostro González

2

http://en.wikipedia.org/wiki/Email_address

这篇维基百科文章详细解释了什么构成一个有效的电子邮件地址。
正如你所看到的,许多有效的电子邮件看起来非常可怕,可能无法通过网络上较低级别的验证器。
在你的情况下,电子邮件地址的域部分(@之后的所有内容)不一定有顶级域名。或者它可能完全只是一个顶级域名(例如postbox@com是有效的)。

0

来自:https://docs.angularjs.org/api/ng/input/input%5Bemail%5D

“注意:input[email]使用从Chromium中使用的正则表达式派生的正则表达式来验证电子邮件地址。如果您需要更严格的验证(例如需要顶级域名),您可以使用ng-pattern或修改内置验证器(请参见表单指南)。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接