JavaScript正则表达式用于高效处理字符串匹配与替换。通过字面量(/abc/)或构造函数(new RegExp("abc"))创建,支持i(忽略大小写)、g(全局匹配)、m(多行模式)等修饰符。常用元字符包括.(任意字符)、\d(数字)、\w(字母数字下划线)、\s(空白符)、*(0次或多次)、+(1次或多次)、?(0或1次)、^(开头)、$(结尾)、[](字符集合)、()(分组)。主要方法有test()(检测匹配)、exec()(返回匹配详情)、match()(获取所有匹配项)、replace()(替换内容)、split()(正则分割字符串)。适用于邮箱、手机号等校验,建议结合regex101.com等工具练习,注意特殊字符转义如.表示句点。

JavaScript 正则表达式是处理字符串匹配、查找、替换的有力工具。掌握它的基本语法和使用方式,能极大提升文本处理效率。
正则表达式的基本写法
在 JS 中创建正则表达式有两种方式:
- 字面量形式:用斜杠包裹模式,例如 /abc/
- 构造函数形式:使用 new RegExp("abc")
两种方式功能相同,但构造函数适合动态生成正则,比如拼接变量。
常用修饰符(flags)
修饰符写在斜杠后,控制匹配行为:
- i:忽略大小写。如 /hello/i 能匹配 "Hello" 或 "HELLO"
- g:全局匹配,找到所有结果而不是第一个就停止
- m:多行模式,让 ^ 和 $ 分别匹配每行开头和结尾
可组合使用,例如 /abc/gi 表示全局且忽略大小写。
常见元字符与模式
正则中一些特殊字符有特定含义:
- .:匹配任意单个字符(换行除外)
- \d:匹配数字,等同于 [0-9]
- \w:匹配字母、数字、下划线
- \s:匹配空白字符(空格、制表符、换行等)
- *:前面的字符出现 0 次或多次
- +:前面的字符出现 1 次或多次
- ?:前面的字符出现 0 次或 1 次
- ^:匹配字符串开头
- $:匹配字符串结尾
- []:字符集合,如 [aeiou] 匹配任意一个元音字母
- ():分组,可用于提取或应用量词
例如:/^\d{6}$/ 匹配恰好6位数字的字符串,常用于邮编验证。
正则的常用方法
JS 字符串和正则对象都提供了一些实用方法:
-
test():检测是否匹配,返回 true 或 false
/\d+/.test("123") // true -
exec():返回匹配结果数组,包含详细信息
/(\d+)/.exec("age:25") // ["25", "25"] -
match():字符串调用,返回所有匹配项
"a1b2c3".match(/\d/g) // ["1", "2", "3"] -
replace():替换匹配内容
"abc123".replace(/\d+/g, "###") // "abc###" -
split():用正则拆分字符串
"one,two;three".split(/[,;]/) // ["one", "two", "three"]
基本上就这些。熟练使用正则需要多练习常见场景,比如邮箱、手机号、URL 的校验。刚开始可以借助在线工具(如 regex101.com)测试表达式效果。不复杂但容易忽略细节,写的时候注意转义特殊字符,比如点号 \. 才表示真正的句点。










