如何在JavaScript中验证电子邮件地址

摘要:如何使用js验证email的验证的正确性?这篇文章做一个简单的总结。官方标准称为RFC 2822。它描述了有效电子邮件地址必须遵守的语法。使用这个正则表达式来实现它:

如何使用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,无需编写用于验证的函数。需要注意的是:存在浏览器兼容性。


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_10726