正则表达式六种常用函数

58 阅读1分钟
方法用途返回值类型是否支持分组
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

image.png

String.match()

查找字符串中所有匹配正则的内容,返回数组(所有匹配项) or null

image.png

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']