JavaScript 正则表达式 API 总结

本文总结了JavaScript正则表达式的主要API,分为正则对象创建、实例属性、实例方法和字符串方法四类。


正则对象可通过构造函数或字面量创建,实例属性包括source、flags及各类匹配标志(g/i/m等)。


实例方法test()用于测试匹配,exec()执行搜索匹配。


字符串原型方法如match()、replace()等支持正则操作。


ES6+新增了unicodeSets、hasIndices等特性。


文中还提供了常用标志说明和使用示例,包括创建正则、测试匹配、提取结果和替换内容等典型场景,完整覆盖了JavaScript正则表达式的核心功能。


关联阅读推荐

JavaScript正则表达式学习方法总结


正则表达式规则和常用案例


js权威指南_第十章正则表达式


JavaScript 正则表达式 API 总结表格

类别 API/方法 所属对象 功能描述 返回值 示例
正则对象创建 new RegExp(pattern, flags) RegExp 构造函数 动态创建正则表达式对象 RegExp 对象 new RegExp('\\d+', 'g')
/pattern/flags 字面量语法 静态创建正则表达式对象 RegExp 对象 /\d+/g
正则实例属性 .source RegExp 实例 获取正则模式字符串(不含flags) 字符串 /ab/.source"ab"
.flags RegExp 实例 获取正则标志字符串 字符串 /ab/gi.flags"gi"
.global RegExp 实例 是否启用全局匹配(g标志) 布尔值 /ab/g.globaltrue
.ignoreCase RegExp 实例 是否忽略大小写(i标志) 布尔值 /ab/i.ignoreCasetrue
.multiline RegExp 实例 是否多行模式(m标志) 布尔值 /ab/m.multilinetrue
.dotAll RegExp 实例 是否让.匹配所有字符(s标志,ES2018) 布尔值 /ab/s.dotAlltrue
.unicode RegExp 实例 是否启用Unicode模式(u标志) 布尔值 /ab/u.unicodetrue
.sticky RegExp 实例 是否启用粘连模式(y标志) 布尔值 /ab/y.stickytrue
.lastIndex RegExp 实例 下次匹配开始的索引(仅当g或y标志时有效) 数字 可读写属性,用于控制匹配位置
正则实例方法 .test(string) RegExp 实例 测试字符串是否匹配模式 布尔值 /\d+/.test("123")true
.exec(string) RegExp 实例 执行搜索匹配,返回匹配结果数组 数组或null /(\d+)/.exec("ab123")["123", "123"]
字符串方法 .match(regexp) String 原型 返回字符串匹配正则的结果 数组或null "ab123".match(/\d+/)["123"]
.matchAll(regexp) String 原型 返回所有匹配的迭代器(需g标志) 迭代器 Array.from("a1 b2".matchAll(/\d/g))
.search(regexp) String 原型 返回第一个匹配的索引 数字(索引) "ab123".search(/\d+/)2
.replace(regexp, replacement) String 原型 替换匹配的子串 新字符串 "a1b2".replace(/\d/g, "#")"a#b#"
.replaceAll(regexp, replacement) String 原型 替换所有匹配的子串(需g标志) 新字符串 "a1b2".replaceAll(/\d/g, "#")"a#b#"
.split(separator) String 原型 使用正则或字符串分隔字符串 数组 "a,b,c".split(/,/)["a","b","c"]
正则静态属性 RegExp.$1-$9 RegExp 构造函数 最近一次匹配的分组捕获(已废弃,避免使用) 字符串 非标准,建议使用exec/match的结果
RegExp.input ($_) RegExp 构造函数 最近一次匹配的输入字符串(已废弃) 字符串 非标准,避免使用
ES6+ 新增 RegExp.prototype.unicodeSets RegExp 实例 是否启用Unicode集合模式(v标志,ES2024) 布尔值 /\p{Script=Greek}/v.unicodeSetstrue
RegExp.prototype.hasIndices RegExp 实例 是否捕获匹配的索引(d标志,ES2022) 布尔值 /(a+)/d.hasIndicestrue
RegExp.prototype.exec() 返回的 indices RegExp 实例 包含每个捕获组开始和结束索引的数组(需d标志) 数组 /(a+)/d.exec("baaab").indices[[1,4],[1,4]]

常用正则标志说明

标志 名称 作用
g global 全局匹配,查找所有匹配项
i ignoreCase 忽略大小写
m multiline 多行模式,^和$匹配每行的开始和结束
u unicode 启用完整的Unicode支持
y sticky 粘性匹配,从lastIndex开始精确匹配
s dotAll .匹配包括换行符的所有字符
d hasIndices 生成匹配结果的开始和结束索引
v unicodeSets 增强的Unicode集合模式(ES2024)

使用示例

javascript 复制代码
// 1. 创建正则表达式
const regex1 = /\d+/g; // 字面量
const regex2 = new RegExp('\\d+', 'g'); // 构造函数

// 2. 测试匹配
console.log(regex1.test("123abc")); // true

// 3. 提取匹配结果
const match = "abc123def456".match(/\d+/g);
console.log(match); // ["123", "456"]

// 4. 替换内容
const replaced = "2023-01-15".replace(/(\d{4})-(\d{2})-(\d{2})/, "$2/$3/$1");
console.log(replaced); // "01/15/2023"

// 5. 使用exec进行迭代(全局匹配时)
const regex = /\d+/g;
let result;
while ((result = regex.exec("a1 b2 c3")) !== null) {
  console.log(`找到 ${result[0]},位置:${result.index}`);
}

这个表格涵盖了 JavaScript 正则表达式的主要 API,包括创建、属性、方法和相关的字符串方法。

相关推荐
linuxxx1107 小时前
正则匹配应用小案例
数据库·正则表达式
威风的虫10 小时前
常用的正则表达式
正则表达式
Lv117700811 小时前
Visual Studio中的正则表达式
ide·笔记·正则表达式·c#·visual studio
故事不长丨19 小时前
C#正则表达式完全攻略:从基础到实战的全场景应用指南
开发语言·正则表达式·c#·regex
YxVoyager1 天前
Qt C++ :QRegularExpression 正则表达式使用详解
c++·qt·正则表达式
laocooon5238578862 天前
正则表达式的全面介绍
正则表达式
ben9518chen2 天前
正则表达式
正则表达式
半路_出家ren2 天前
17.python爬虫基础,基于正则表达式的爬虫,基于BeautifulSoup的爬虫
网络·爬虫·python·网络协议·正则表达式·网络爬虫·beautifulsoup
Good_Starry3 天前
Java——正则表达式
java·开发语言·正则表达式