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

JavaScript 正则表达式详解

JavaScript 正则表达式是处理字符串的强大工具,广泛应用于表单验证、文本处理和数据提取。在 JavaScript 中定义正则表达式的字面量语法,详细讲解了常用匹配方法 test() 和 exec() 的用法与区别。核心部分涵盖元字符(边界符 ^/$、量词 *+?{}、字符类 []\d\s 等)及修饰符(i/g)。通过 QQ 号验证、日期格式验证等简单示例展示了实际应用场景。掌握正则表达式能有效提升字符串处理的效率与准确性。

FlinkHero发布于 2026/2/5更新于 2026/7/211.7K 浏览
JavaScript 正则表达式详解

JavaScript 正则表达式详解

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

什么是正则表达式

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

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

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

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

1. 字面量语法
const 规则变量名 = /表达式/;
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

更多推荐文章

查看全部
  • Java 锁升级机制详解:偏向锁、轻量级锁与重量级锁
  • WebVOWL 本体可视化工具完整部署手册
  • MySQL 动态分区管理:自动化与优化实践
  • 算法基础篇:一维差分专题与实战应用
  • HTTP 请求方式详解:GET、POST 与常用方法实战
  • C++ 高频面试考点:语言基础与预处理
  • Linux 部署 RocketMQ 并实现公网访问实战
  • 基于 DeepSeek 和 Cursor 构建智能代码审查工具实战
  • 大模型时代机器学习工程师薪资与职业发展分析
  • AI 大模型开发技术面试指南与核心知识点解析
  • MySQL 基础(1):Ubuntu 安装与配置
  • C++ 结构体:struct 的定义与结构体数组
  • Visual Studio Code 核心特性与实战体验
  • 基于大模型的自助式 AI 对话系统构建与应用
  • OpenCode 开源 AI 编程助手完全使用指南
  • 游戏全球化:市场分析与本地化实战策略
  • 前端工程师的 AI 设计工作流:从 ASCII 原型到代码生成
  • MCP 协议详解:与 Function Call 区别及使用方法
  • 2025 年值得推荐的 ChatGPT 桌面客户端汇总
  • Cursor Agent Skills 实战指南:打造专属前端 AI 助手

相关免费在线工具

  • 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