正则中的match与exec的区别
match是字符串中的方法,返回的是由正则匹配到字符组成的一个新数组
+ 如果是全局匹配g
,那么就会在全局正向查找,匹配所有满足正则规则的字符
let str = `你好2021你好2020你好2021`
let reg=/你好2021/g;
let str2 = str.match(reg);
console.log(str2);
exec()
方法:
let str=`你好2021大家好20212021!!!2021大家好2021大家好2022大家好2008大家好2021`;
let reg=/(你好)(2021)/g;
let str2 = str.match(reg); // [ "大家好2021", "大家好2021", "大家好2021" ] 只能匹配到"大家好2021"
let str3 = reg.exec(str); //[ "大家好2021", "大家好", "2021" ]
总结:
match()
方法适用于没有小分组
的情况下使用; 如果有小分组
推荐使用exec()
方法;