返回

邮箱地址正则表达式解析及用法(JavaScript,Email,Regex)

前端

电子邮件地址格式

电子邮件地址由三部分组成:

  • 本地部分(local-part): 在 @ 符号之前的所有内容,通常包含用户名。
  • 域名(domain): 在 @ 符号之后的所有内容,通常包含子域和顶级域。
  • 分隔符(delimiter): @ 符号。

电子邮件地址的格式由RFC 822定义,它是电子邮件地址的官方标准。RFC 822 规定电子邮件地址的格式如下:

local-part@domain

其中,local-partdomain可以包含字母、数字、下划线、连字符和句点。但是,不能以句点开头或结尾,也不能连续出现两个句点。

例如,以下电子邮件地址是有效的:

  • user@example.com
  • user.name@example.com
  • u-s-e-r@example.com
  • 123@example.com

以下电子邮件地址无效:

  • user.@example.com (以句点开头)
  • user..name@example.com (连续出现两个句点)
  • user@example. (以句点结尾)

JavaScript 中的正则表达式

正则表达式是一种特殊字符串,用于在文本中搜索和匹配模式。JavaScript 中的正则表达式使用new RegExp()构造函数创建。

例如,以下代码创建一个正则表达式,用于匹配以字母“a”开头和以字母“z”结尾的字符串:

const regex = new RegExp('^a.*z
const regex = new RegExp('^a.*z$');
#x27;
);

该正则表达式可以用于以下字符串:

  • "abc":匹配
  • "abz":匹配
  • "123":不匹配

使用正则表达式验证电子邮件地址

我们可以使用正则表达式来验证电子邮件地址。以下是如何在 JavaScript 中使用正则表达式验证电子邮件地址的示例:

function validateEmail(email) {
  const regex = new RegExp(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
  return regex.test(email);
}

console.log(validateEmail('user@example.com')); // true
console.log(validateEmail('user.name@example.com')); // true
console.log(validateEmail('u-s-e-r@example.com')); // true
console.log(validateEmail('123@example.com')); // true
console.log(validateEmail('user.@example.com')); // false
console.log(validateEmail('user..name@example.com')); // false
console.log(validateEmail('user@example.')); // false

上面的正则表达式是比较复杂的,但是它可以匹配大多数有效的电子邮件地址。如果您需要更简单的正则表达式,可以尝试以下正则表达式:

function validateEmail(email) {
  const regex = new RegExp(/^[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])?)*$/);
  return regex.test(email);
}

console.log(validateEmail('user@example.com')); // true
console.log(validateEmail('user.name@example.com')); // true
console.log(validateEmail('u-s-e-r@example.com')); // true
console.log(validateEmail('123@example.com')); // true
console.log(validateEmail('user.@example.com')); // false
console.log(validateEmail('user..name@example.com')); // false
console.log(validateEmail('user@example.')); // false

这个正则表达式会稍微简单一些,但它仍然可以匹配大多数有效的电子邮件地址。

总结

使用 JavaScript 的正则表达式对电子邮件地址进行验证是确保电子邮件地址合法性最常用、最有效的方法之一。本文解析了各种 JavaScript 电子邮件正则表达式并提供了详细的用法示例,以便您能够在 JavaScript 项目中轻松实现电子邮件地址验证。