JavaScript正则表达式可通过字面量(如/\d{3}-\d{4}/)或RegExp构造函数创建,需正确编写模式与标志(g/i/m/s),并配合test()、match()、exec()匹配及replace()替换文本。
JavaScript 正则表达式用 RegExp 对象或字面量(如 /pattern/flags)创建,核心是写对模式(pattern)和选对标志(flags),再配合字符串方法完成匹配与替换。
两种方式都能创建正则对象,但适用场景不同:
/\d{3}-\d{4}/ —— 模式固定、无变量时更简洁,性能略好new RegExp('\\d{3}-\\d{4}') —— 模式含变量或动态拼接时必须用,注意反斜杠要双写(字符串转义)
标志决定匹配行为,常组合使用:
g:全局匹配(不加只找第一个)i:忽略大小写(如 /hello/i 匹配 "Hello")m:多行模式(让 ^ 和 $ 匹配每行起止)s(ES2018+):点号 . 匹配换行符(默认不匹配)根据需求选方法:
reg.test(str):返回 true/false,适合条件判断(如表单校验)str.match(reg):返回匹配数组(含 index、input 等属性),全局时返回所有匹配项;无匹配返回 null
reg.exec(str):返回单个匹配结果(含捕获组),配合 g 标志可循环调用获取全部(适合需逐个处理的场景)str.replace(reg, replacement) 是主力方法,replacement 可以是字符串或函数:
$1 表示第一个捕获组,$& 表示整个匹配,$$ 表示一个 $
str.replace(/(\w+)/g, (match, p1) => p1.toUpperCase()),参数依次为完整匹配、捕获组、索引、原字符串g 标志只替换第一个;想全替换必须带 g
不复杂但容易忽略。