前端知识点---用正则表达式判断邮箱(javascript)

时间:2025-03-28 14:02:42
// 全面的正则(兼容大多数情况)
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

// 或直接使用浏览器内置验证
<input type="email" required>
  • /:正则表达式的起始和结束标志。

  • ^:匹配字符串的开头。

  • [a-zA-Z0-9._%±]+:匹配电子邮件地址的本地部分(@符号之前)。

  • [a-zA-Z0-9]:字母(大小写)和数字。

  • .%±:允许的特殊字符(.、、%、+、-)。

  • +:表示前面的字符可以重复1次或多次。

  • @:匹配邮箱地址中的 @ 符号。

  • [a-zA-Z0-9.-]+:匹配邮箱的域名部分。

  • .:可以包含的点(如 example.com)。

  • -:支持带有连字符的域名(如 my-domain.com)。

  • .:转义的点,用于匹配域名中的 .。

  • [a-zA-Z]{2,}:匹配*域名(TLD),例如 com、org、net。

  • {2,}:表示至少2个字母,例如 cn、us、info 等。

  • $:匹配字符串的结尾,确保邮箱格式完整。

✅ 示例匹配的邮箱:

user@example.com

my.email123@domain.co.uk

name+alias@mail-provider.org

❌ 示例不匹配的邮箱:

user@com(TLD 不符合规则)

user@.com(域名不完整)

user@domain,com(不允许逗号)

user@domain…com(连续的点不合法)

这段正则表达式在邮箱验证中非常常用,能过滤大部分无效邮箱地址。