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

JavaScript 正则表达式详解与使用指南

介绍 JavaScript 正则表达式的基本概念、定义方法及核心语法。涵盖字面量语法、test 和 exec 匹配方法,详细解析元字符(边界符、量词、字符类)及修饰符。通过 QQ 号、日期格式验证等实例演示实际应用,帮助开发者掌握字符串模式匹配技术。

并发大师发布于 2026/4/6更新于 2026/7/2363 浏览
JavaScript 正则表达式详解与使用指南

JavaScript 正则表达式详解

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

什么是正则表达式

正则表达式是用于匹配字符串中字符组合的模式,在 JavaScript 中以对象形式存在。它主要用于:

  • 验证表单输入(如限制只能输入特定字符)
  • 过滤文本中的敏感词
  • 从字符串中提取特定信息

JavaScript 正则表达式的定义与使用

在 JavaScript 中,定义正则表达式有两种方式:

1. 字面量语法
const ruleName = /pattern/;
2. 常用匹配方法
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. JavaScript 正则表达式的定义与使用
  4. 1. 字面量语法
  5. 2. 常用匹配方法
  6. test() 方法
  7. exec() 方法
  8. 正则表达式的核心组成部分
  9. 1. 元字符
  10. 边界符
  11. 量词
  12. 字符类
  13. 2. 修饰符
  14. 简单示例
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • AI Agent 设计模式实战:ReAct 架构详解
  • Docker 数据挂载:Managed Volume 使用详解
  • Python JSON 模块实战指南:序列化与反序列化详解
  • OpenClaw 龙虾机器人本地部署与配置指南
  • IBM Watson Conversation API 实战:机场客服场景与上下文管理
  • STL 有序关联容器详解:set、map 及其变体使用指南
  • 结构化谱推理:频率自适应多模态推荐方法解读
  • 递归算法:原理、设计与经典例题解析
  • 无网络环境下 libwebkit2gtk-4.1-0 离线安装指南
  • openclaw 对接完飞书群机器人配置踩坑记:消息不回、Gateway 断开问题排查
  • AI 系统告警机制原理与代码实战
  • Python+Agent 入门实战:搭建可复用 AI 智能体
  • QClaw 本地 AI Agent 接入微信的使用指南与原理分析
  • 7.1 自动化触发器:Trigger 机制与 Webhook 的妙用
  • DeepSeek 各版本说明与优缺点分析
  • Web3.0 开发实践:核心概念与技术演进
  • SpringBoot + Vue 前后端分离架构实战:权限、工作流与报表
  • 生信零基础到独立项目:3 个月模块化学习路径(工具 + 算法 + 实战)
  • 企业级 AIGC 生图落地方案:如何平衡质量、成本与速度
  • AI Agent 开发入门:零基础如何起步

相关免费在线工具

  • 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