JavaScript正则表达式是匹配字符串模式的对象,可用字面量(/pattern/flags)或构造函数(new RegExp("pattern","flags"))创建;常用修饰符有g(全局)、i(忽略大小写)、m(多行)、s(.匹配换行符);核心方法包括test(验证)、exec(匹配详情)、match(提取)、replace(替换)、split(分割)。

JavaScript中的正则表达式(Regular Expression,简称RegExp)是一种用于匹配字符串中字符组合的模式工具。它不是字符串本身,而是一个对象,用来描述、查找、替换或验证文本是否符合某种规则。
正则表达式的两种创建方式
你可以用字面量语法或构造函数来创建正则表达式:
-
字面量形式:/pattern/flags,比如
/abc/g—— 简洁,适合静态模式 -
构造函数形式:
new RegExp("abc", "g")—— 适合动态生成模式(例如从用户输入拼接)
注意:用构造函数时,反斜杠要双写("\\d+"),因为字符串本身会先解析一次转义。
常用修饰符(flags)的作用
修饰符决定匹配行为,可单独或组合使用:
立即学习“Java免费学习笔记(深入)”;
- g:全局匹配,找到所有结果,不只第一个
-
i:忽略大小写,如
/HELLO/i能匹配"hello" -
m:多行模式,让
^和$匹配每行起始/结尾,不只是整个字符串 -
s(ES2018+):让
.匹配包括换行符在内的所有字符
核心匹配方法怎么用
正则对象和字符串都提供匹配方法,用途不同:
-
regex.test(str):返回true或false,常用于表单验证(比如邮箱格式) -
regex.exec(str):返回匹配结果数组(含index、input等属性),配合g标志可循环调用找全部匹配 -
str.match(regex):类似exec,但对非全局正则返回详细数组,全局时只返回匹配内容(无捕获组信息) -
str.replace(regex, replacement):替换匹配内容,支持字符串或函数作为替换值 -
str.split(regex):按匹配结果切分字符串,比如用/\\s+/拆分多个空格
几个实用的小例子
快速上手常见场景:
- 提取所有数字:
"Price: $19.99, Qty: 5".match(/\d+/g)→["19", "99", "5"] - 验证手机号(简单版):
/^1[3-9]\d{9}$/.test("13812345678") - 替换所有空白字符为单个空格:
"a b\t\tc".replace(/\s+/g, " ")→"a b c" - 提取邮箱用户名:
"user@example.com".match(/^([^@]+)@/)[1]→"user"
不复杂但容易忽略细节,掌握基础模式和这几个方法,日常开发已经够用。










