| 方法 | 用途 | 返回值类型 | 是否支持分组 |
|---|---|---|---|
RegExp.test() | 快速判断是否存在匹配 | boolean | ❌ |
RegExp.exec() | 提取匹配细节和分组 | Array / null | ✅ |
String.match() | 获取所有匹配项 | Array / null | ✅(非全局) |
String.search() | 查找匹配位置 | number | ❌ |
String.replace() | 替换匹配内容 | string | ✅ |
String.split() | 按正则分割字符串 | Array | ❌ |
RegExp.test()
检测字符串是否匹配正则,返回true or false
const regex = /^[a-z]+$/;
console.log(regex.test('hello')); //返回true
console.log(regex.test('Hello')); //返回false
RegExp.exec()
查找匹配结果(可捕获分组),返回数组(匹配内容+分组) or null
String.match()
查找字符串中所有匹配正则的内容,返回数组(所有匹配项) or null
String.search()
查找第一个匹配的位置,返回起始索引(从0开始),未找到返回-1
const str = 'hello world';
console.log(str.search(/world/)); //6
console.log(str.search(/World/)); //-1
String.replace()
替换匹配内容,返回新字符串(原字符串不改变)
const str = '1234567890';
const regex = /(\d{3})\d{4}(\d{3})/;
console.log(str.replace(regex, '$1****$2')); //123****890
console.log(str); //1234567890
String.split()
用正则分割字符串,返回分割后的数组
const str = '123.456;789?0'
const regex = /[.;?]/;
console.log(str.split(regex)); //['123', '456', '789', '0']