📌  相关文章
📜  正则表达式验证电子邮件 - Javascript (1)

📅  最后修改于: 2023-12-03 15:26:52.450000             🧑  作者: Mango

正则表达式验证电子邮件 - Javascript

在开发中,对于电子邮件的验证是非常常见的需求。在Javascript中,可以使用正则表达式来验证电子邮件是否符合规范。

1. 验证电子邮件格式

电子邮件格式通常为 username@domain.com,其中usernamedomain分别表示用户名和域名。使用以下正则表达式验证电子邮件是否符合格式要求:

const email = "example@email.com";
const pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
if (pattern.test(email)) {
  console.log("Valid email address");
} else {
  console.log("Invalid email address");
}

解析:

  • ^ 表示匹配字符串的开始。
  • [a-zA-Z0-9._-]+ 表示匹配一个或多个字母、数字、点、下划线或破折号。
  • @ 表示匹配电子邮件地址的“@”符号。
  • [a-zA-Z0-9.-]+ 表示匹配一个或多个字母、数字、点或破折号。
  • \. 表示匹配一个点号(“\”是转义字符,用于将点号转义为普通字符)。
  • [a-zA-Z]{2,4} 表示匹配2到4个字母(常见的顶级域名有.com、.cn、.net等)。
  • $ 表示匹配字符串的结束。
2. 验证电子邮件中的用户名和域名

除了验证电子邮件的格式是否符合规范外,还可以验证用户名和域名是否合法。以下是验证电子邮件中的用户名和域名的正则表达式:

const email = "example@email.com";
const usernamePattern = /^[a-zA-Z0-9._-]+/;
const domainPattern = /[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
const username = email.match(usernamePattern)[0];
const domain = email.match(domainPattern)[0];
console.log(`Username: ${username}`);
console.log(`Domain: ${domain}`);

解析:

  • match() 方法用于在字符串中查找一个或多个匹配的文本,并返回匹配结果。
  • /\.[a-zA-Z]{2,4}$/ 表示匹配以点号开头、后面跟2到4个字母的字符串(常见的顶级域名有.com、.cn、.net等)。
3. 验证电子邮件中的域名后缀

有时候需要验证电子邮件中的域名后缀是否在指定的列表中。可以使用以下正则表达式进行域名后缀的验证:

const email = "example@email.com";
const suffixList = ["com", "net", "org"];
const domainPattern = /[a-zA-Z0-9.-]+\.(com|net|org)$/i;
const domain = email.match(domainPattern)[0];
if (suffixList.includes(domain.split(".")[1].toLowerCase())) {
  console.log("Valid domain suffix");
} else {
  console.log("Invalid domain suffix");
}

解析:

  • i 表示不区分大小写。
  • domain.split(".")[1] 表示获取电子邮件中的域名后缀(使用点号进行分割后,返回第二个元素)。
  • toLowerCase() 方法将字符串转换为小写字母,便于与后缀列表进行比较。

参考链接: