|

JavaScript 常用正则表达式大全:邮箱、手机号、URL、密码验证实用模式分享

JavaScript 中正则表达式是一种强大的字符串匹配与验证工具,广泛用于表单验证、日志提取、数据清洗等场景。以下是一些常用且实用的 JavaScript 正则表达式示例,以及 test() 和 exec() 方法使用方式说明,以供前端开发者参考。

可以使用本站的正则表达式工具进行在线测试:正则表达式工具

基础字符类与元字符

JavaScript 支持常见的字符类:\d(数字)、\w(字母、数字与下划线)、\s(空白字符)等;\D、\W、\S 分别表示它们的反义。特殊元字符包括:.(匹配任意非换行符)、^(行首)、$(行尾)、[](字符集)、|(或)、() (分组),以及量词如 +、*、?、{n,m} 等。

const digitRegex = /^\d+$/;
const wordCharRegex = /^\w+$/;
const whitespaceRegex = /\s+/g;

邮箱地址验证模式

常用邮箱验证正则如下,可匹配一般形式的邮箱:

const emailRegex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;

该正则规则简洁实用,适合大部分用户输入场景。

手机号码验证模式

中国大陆手机格式:

const cnPhoneRegex = /^1[3-9]\d{9}$/;

国际通用手机号(带国家码):

const intlPhoneRegex = /^\+?[1-9][0-9]{7,14}$/;

可匹配带或不带加号的国家码形式。

URL 与域名验证模式

带 http/https 的 URL 格式:

const urlRegex = /^https?:\/\/[^\s/$.?#].[^\s]*$/i;

不含协议的域名或 URL Slug:

const domainRegex = /^([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}$/;

适合验证页面、图片来源、外部链接格式等。

数字、整数与浮点数验证

正整数:

const posIntRegex = /^\d+$/;

整数(含负数):

const intRegex = /^-?\d+$/;

浮点数或整数:

const numberRegex = /^-?\d*(\.\d+)?$/;

可用于金额、数量输入校验等。

用户名与密码强度校验

用户名限定 3–16 位字母数字和下划线:

const usernameRegex = /^[a-z0-9_-]{3,16}$/i;

密码强度(至少大写、小写、数字、特殊符号且 ≥8 位):

const strongPwdRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/;

适合表单注册验证,提高安全性与用户输入质量。

IP 地址与日期验证模式

IPv4 地址:

const ipv4Regex = /^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$/;

日期格式 YYYY-MM-DD:

const dateRegex = /^(?:19|20)\d{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;

可用于后台校验日志、配置日期、用户输入等场景。

如何在 JavaScript 中应用这些正则

test() 方法:用于快速检查字符串是否匹配模式,返回布尔值。

const isEmail = emailRegex.test(input);

exec() 或 matchAll() 方法:用于提取分组内容或所有匹配项。

const matches = str.matchAll(/<(\w+)>/g);

其中 matchAll 可以返回所有捕获组对象数组,适合查找所有标签、链接等。

安全与性能提示

正则虽便捷,但使用不当会造成 ReDoS(正则拒绝服务)风险,尤其是包含多个嵌套量词时。建议避免使用性能复杂度过高的模式,测试边界情况,并使用合理的输入长度限制。

JavaScript 常见的正则表达式模式覆盖邮箱、手机号、URL、数字、密码、用户名、IP、日期等多个应用场景。本文提供了实用的模式示例和 test()/exec() 使用方式说明,帮助开发者快速集成常用校验功能。

评论