JS中exec函数与match函数的区别与联系

时间:2021-07-07 22:24:25

总结:

正则规则的声明,两种方法:

exec是RegExp类的匹配方法

match是字符串类的匹配方法

var reg = /aaa/g;
var reg = new RegExp("aaa","g");

创建的时候 可以用 这两种方法创建,唯一的区别在于 第二种 用NEW的方法可以在规则内使用变量,例如

var name="xaiohua";
var reg=new RegExp("aa"+xiaohua+"aa",g);

举例子

var str="ab1cab2";
var reg=/ab(\d)/g;
var res=reg.exec(str);
console.log(res);
//结果["ab1", "1", index: 0, input: "ab1cab1"]
var res1=str.match(reg);
console.log(res1);
//结果["ab1", "ab2"]

总结:

match是返回所有匹配的字符串合成的数组,但是正则表达式必须指定全局g属性才能返回所有匹配,不指定g属性则会返回一个只有一个元素的数组。

exec永远返回与第一个匹配相关的信息,其返回数组包括第一个匹配的字串,所有分组的反向引用。(pattern中的g属性对exec函数是没有任何作用的)