【发布时间】:2016-03-31 21:16:31
【问题描述】:
我想使用 HTML5 的 type="email" 验证来创建一个用于验证电子邮件的函数。
如果可能的话,我想做的是创建一个表单,并附加一个type="email" 的输入,以便我可以尝试提交它。然后我可以看看它是否有效返回是否传递的电子邮件实际上是一封电子邮件。
类似这样,但我知道这不起作用:
function isEmail (string) {
var frm = document.createElement('form');
var input = document.createElement('input');
input.setAttribute('type', 'email');
input.setAttribute('action', 'javascript:void(0)');
input.setAttribute('value', string);
frm.appendChild(input);
// I know this doesn't work
if ( !! frm.submit() ) return true;
else return false;
}
是否可以通过这种方式验证电子邮件地址?
【问题讨论】:
-
一般免责声明:电子邮件地址的语法有效性并不意味着该电子邮件地址确实存在。所以不要试图过火。您要做的就是抓住用户的拼写错误,实际验证需要一封带有链接或密码之类的电子邮件。
-
当然,我只是想确保传递的电子邮件在语法上是正确的。
-
关于“语法正确性”,请参阅我发布的第二个链接下的注释:“此要求是对 RFC 5322 的故意违反,它定义了电子邮件的语法同时过于严格(在“@”字符之前)、过于模糊(在“@”字符之后)和过于宽松(允许以大多数用户不熟悉的方式使用 cmets、空白字符和引用字符串)的地址不实用在这里使用。” - 所以关于什么构成“有效”电子邮件地址的定义已经有所不同,具体取决于您询问的对象。通常建议检查不那么严格。
-
除了上面 CBroe 的评论,您还应该非常谨慎地了解“电子邮件地址”一词的含义。您可能会对这可以引用的不同事物的数量感到惊讶。
标签: javascript validation email