如何在JavaScript中验证电子邮件地址
如何使用js验证email的验证的正确性?这篇文章做一个简单的总结。
方式一:简单验证
对于想要以以下形式进行真正简单验证的人
fly63@email.com正则表达式:
/\S+@\S+\.\S+/
要防止匹配多个@ 符号(推荐使用):
/^[^\s@]+@[^\s@]+\.[^\s@]+$/
JavaScript 函数示例:
function validateEmail(email) {
var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return re.test(email);
}
console.log(validateEmail(fly63@email.com'));这样能保证用户输入的邮箱没有明显的错误,绝大部分是正确的,而且效率是最高的。
方式二、官网标准
官方标准称为RFC 2822。它描述了有效电子邮件地址必须遵守的语法。使用这个正则表达式来实现它:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])如果我们省略使用双引号和方括号的语法,我们将获得更实用的 RFC 2822 实现。它仍然会匹配今天实际使用的所有电子邮件地址的 99.99%。
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?方式三、html5表单验证
HTML5 本身具有电子邮件验证功能。如果您的浏览器支持 HTML5,那么您可以使用以下代码。
<form>
<input type="email" placeholder="me@example.com" required>
<input type="submit">
</form>只需检查输入的电子邮件地址是否有效或不使用 HTML,无需编写用于验证的函数。需要注意的是:存在浏览器兼容性。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!