跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端java

JavaScript 正则表达式详解:语法、核心组件与实战示例

JavaScript 正则表达式是处理字符串的强大工具,广泛应用于表单验证、文本过滤及数据提取。本文涵盖正则定义方式(字面量与构造函数)、常用匹配方法(test 与 exec),并深入解析元字符(边界符、量词、字符类)及修饰符(i、g)。通过 QQ 号与日期格式验证等实战案例,帮助开发者快速掌握正则编写技巧,提升前端数据处理效率。

链路追踪发布于 2026/3/22更新于 2026/6/1117 浏览
JavaScript 正则表达式详解:语法、核心组件与实战示例

JavaScript 正则表达式详解

正则表达式是处理字符串的强大工具,在 JavaScript 中被广泛应用于表单验证、文本处理和数据提取等场景。本文将从正则表达式的基本概念出发,详细介绍其语法规则和实际应用方法。

基础概念

正则表达式用于匹配字符串中字符组合的模式,在 JavaScript 中以对象形式存在。它主要用于验证表单输入(如限制只能输入特定字符)、过滤文本中的敏感词以及从字符串中提取特定信息。

定义与使用

在 JavaScript 中,定义正则表达式主要有两种方式,这里我们重点介绍最常用的字面量语法。

字面量语法
const 规则变量名 = /表达式/;
常用匹配方法

test() 方法

用于检测字符串是否符合正则表达式规则,返回布尔值。这在条件判断中非常实用。

const find = /前端/;
const str = "我们在学习前端,希望突击前端赶大项目的进度";
console.log(find.test(str)); // true(字符串中包含'前端')

exec() 方法

在字符串中执行匹配搜索,返回匹配结果数组或 null。如果你需要获取具体的匹配内容,这个方法更合适。

console.log(find.exec(str)); // 返回包含'前端'的数组

正则表达式的核心组成部分

理解正则的关键在于掌握元字符和修饰符,它们是构建复杂规则的基石。

1. 元字符

元字符是具有特殊含义的字符,主要分为以下几类:

边界符

用于指定字符的位置,确保匹配发生在预期的地方。

  • ^:表示匹配行首的文本(以指定字符开始)
  • $:表示匹配行尾的文本(以指定字符结束)

当 ^ 和 $ 一起使用时,表示精确匹配整个字符串。

console.log(/^哈$/.test("哈"));      // true(精确匹配单个'哈')
console.log(/^哈$/.test("哈哈"));    
// false(不是单个'哈')

量词

用于指定字符出现的次数,灵活控制匹配长度。

  • *:重复 0 次或更多次
  • +:重复 1 次或更多次
  • ?:重复 0 次或 1 次
  • {n}:重复 n 次
  • {n,}:重复 n 次或更多次
  • {n,m}:重复 n 到 m 次(注意逗号两侧不能有空格)

示例:

console.log(/^哈{2}$/.test("哈哈"));        // true(正好出现 2 次)
console.log(/^哈{2,4}$/.test("哈哈哈哈"));  // true(出现 4 次,在 2-4 范围内)
console.log(/^哈{2,}$/.test("哈哈哈哈"));   // true(出现 4 次,不少于 2 次)

字符类

用于匹配一类字符,比单独列出更高效。

  1. []:匹配字符集合中的任意一个字符
console.log(/[abc]/.test("andy"));   // true(包含'a')
console.log(/[abc]/.test("die"));    // false(不包含 a、b、c 中任何一个)
  1. 连字符 -:表示一个范围
console.log(/^[a-z]$/.test("p"));     // true(小写字母)
console.log(/^[A-Z]$/.test("B"));     // true(大写字母)
console.log(/^[0-9]$/.test("2"));     // true(数字)
  1. 取反符号 ^:在 [] 内使用,表示匹配除指定字符外的任意字符
console.log(/^[^a-zA-Z0-9]$/.test("!")); // true(非字母数字)
  1. 预定义字符类:常见模式的简写,能大幅提升可读性
  • \d:匹配 0-9 之间的任意数字(相当于 [0-9])
  • \D:匹配非数字(相当于 [^0-9])
  • \w:匹配字母、数字和下划线(相当于 [A-Za-z0-9_])
  • \W:匹配非字母、数字和下划线
  • \s:匹配空格(包括换行符、制表符等)
  • \S:匹配非空格字符
2. 修饰符

修饰符用于约束正则表达式的执行行为,通常跟在斜杠后面。

  • i:忽略大小写(ignore)
  • g:全局匹配(global),找到所有匹配项而非第一个

示例:

// 忽略大小写
console.log(/a/i.test("A"));           // true
console.log(/^java$/i.test("JAVA"));   // true

// 全局替换
const str2 = "我草,整个沧南市都因林七夜一人而存在,我草";
const ret2 = str2.replace(/我草/g, "**"); // 替换所有匹配项
console.log(ret2);                     // '**,整个沧南市都因林七夜一人而存在,**'

简单示例

在实际开发中,正则常用于表单验证。下面是一些常见的应用场景:

表单验证:

// 验证 QQ 号(从 10000 开始)
const qqReg = /^[1-9][0-9]{4,}$/;

// 验证日期格式(yyyy-mm-dd)
const dateReg = /^\d{4}-\d{1,2}-\d{1,2}$/;

掌握这些基础后,你可以结合具体业务需求编写更复杂的规则。记住,调试正则时善用在线工具或浏览器控制台,能快速定位问题所在。

目录

  1. JavaScript 正则表达式详解
  2. 基础概念
  3. 定义与使用
  4. 字面量语法
  5. 常用匹配方法
  6. 正则表达式的核心组成部分
  7. 1. 元字符
  8. 2. 修饰符
  9. 简单示例
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C/C++依赖管理:Conan 深度解析与实战
  • FPGA 面试核心知识点梳理(一)
  • ESPHome Flasher 智能家居设备配置工具使用指南
  • Windows Terminal 1.0 正式版发布,支持多配置文件与 GPU 加速
  • VS Code SSH 远程环境中 Copilot 无模型选项问题修复
  • 基于 Spring Cloud 与 AI 的分布式智能推荐系统构建
  • Python 桌面自动化操作实战:基于 pyautogui 与 win32com
  • GraphRAG:基于知识图谱的检索增强生成技术详解与实战
  • GitHub Copilot 接入第三方模型 API 配置实战
  • B 站:从二次元社区到 AI 创新孵化器的转型观察
  • Qt Creator 18.0.2 跨平台 IDE:支持 Qt、QML 与 C++
  • OpenClaw 公网访问实战:利用 cpolar 实现随时随地远程连接
  • Windows、macOS 与 Linux 系统下多种 Python 环境安装指南
  • 文件上传漏洞利用原理与防御方案
  • 本地离线部署 Whisper 模型实现语音转写指南
  • Google 推出医学治疗通用大模型 Tx-LLM,多项任务超越 SOTA
  • AIGC 技术与进展
  • AIGC 电影《编钟》制作流程与复盘
  • 20 个提升 Python 开发效率的 PyCharm 常用插件推荐
  • 2026 年春晚机器人行业营销竞争与商业化落地观察

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online