news 2026/4/22 19:03:24

JavaScript 正则表达式 API 总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
正则实例属性.sourceRegExp 实例获取正则模式字符串(不含flags)字符串/ab/.source"ab"
.flagsRegExp 实例获取正则标志字符串字符串/ab/gi.flags"gi"
.globalRegExp 实例是否启用全局匹配(g标志)布尔值/ab/g.globaltrue
.ignoreCaseRegExp 实例是否忽略大小写(i标志)布尔值/ab/i.ignoreCasetrue
.multilineRegExp 实例是否多行模式(m标志)布尔值/ab/m.multilinetrue
.dotAllRegExp 实例是否让.匹配所有字符(s标志,ES2018)布尔值/ab/s.dotAlltrue
.unicodeRegExp 实例是否启用Unicode模式(u标志)布尔值/ab/u.unicodetrue
.stickyRegExp 实例是否启用粘连模式(y标志)布尔值/ab/y.stickytrue
.lastIndexRegExp 实例下次匹配开始的索引(仅当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-$9RegExp 构造函数最近一次匹配的分组捕获(已废弃,避免使用)字符串非标准,建议使用exec/match的结果
RegExp.input ($_)RegExp 构造函数最近一次匹配的输入字符串(已废弃)字符串非标准,避免使用
ES6+ 新增RegExp.prototype.unicodeSetsRegExp 实例是否启用Unicode集合模式(v标志,ES2024)布尔值/\p{Script=Greek}/v.unicodeSetstrue
RegExp.prototype.hasIndicesRegExp 实例是否捕获匹配的索引(d标志,ES2022)布尔值/(a+)/d.hasIndicestrue
RegExp.prototype.exec()返回的indicesRegExp 实例包含每个捕获组开始和结束索引的数组(需d标志)数组/(a+)/d.exec("baaab").indices[[1,4],[1,4]]

常用正则标志说明

标志名称作用
gglobal全局匹配,查找所有匹配项
iignoreCase忽略大小写
mmultiline多行模式,^和$匹配每行的开始和结束
uunicode启用完整的Unicode支持
ysticky粘性匹配,从lastIndex开始精确匹配
sdotAll.匹配包括换行符的所有字符
dhasIndices生成匹配结果的开始和结束索引
vunicodeSets增强的Unicode集合模式(ES2024)

使用示例

// 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,包括创建、属性、方法和相关的字符串方法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 3:31:15

ResNet18环境配置太麻烦?试试这个免配置云端方案

ResNet18环境配置太麻烦?试试这个免配置云端方案 引言 作为一名开发者,你是否经历过这样的痛苦:换了新电脑后,不得不重新配置CUDA、PyTorch等深度学习环境,花费数小时甚至一整天时间解决各种依赖冲突?特别…

作者头像 李华
网站建设 2026/4/22 17:10:25

ResNet18傻瓜式教程:没GPU也能跑,1块钱起立即体验

ResNet18傻瓜式教程:没GPU也能跑,1块钱起立即体验 引言:为什么选择ResNet18入门CNN? 最近很多应届生朋友发现,几乎所有的AI相关岗位招聘要求都会写"熟悉CNN模型"。作为计算机视觉领域的经典模型&#xff0…

作者头像 李华
网站建设 2026/4/17 2:10:33

Rembg模型更新:最新版本特性解析

Rembg模型更新:最新版本特性解析 1. 智能万能抠图 - Rembg 在图像处理领域,背景去除是一项高频且关键的任务,广泛应用于电商展示、设计创作、AI换装、虚拟试穿等场景。传统方法依赖人工蒙版或基于颜色阈值的自动分割,不仅效率低…

作者头像 李华
网站建设 2026/4/18 4:49:40

零依赖部署ResNet18图像分类|内置权重+WebUI交互体验

零依赖部署ResNet18图像分类|内置权重WebUI交互体验 一、项目背景与技术选型 在边缘计算和本地化AI服务日益普及的今天,轻量级、高稳定性、零外部依赖的模型部署方案成为开发者关注的核心。传统的图像分类服务常依赖云API或动态加载远程权重,…

作者头像 李华
网站建设 2026/4/17 19:25:58

Rembg抠图对比测试:与其他开源方案比较

Rembg抠图对比测试:与其他开源方案比较 1. 引言:为何需要智能万能抠图? 在图像处理、电商展示、UI设计和内容创作等领域,自动去背景(Image Matting / Background Removal)是一项高频且关键的需求。传统手…

作者头像 李华