JavaScript中String的math方法与RegExp的exec方法的区别

时间:2023-03-09 19:38:21
JavaScript中String的math方法与RegExp的exec方法的区别

1.exec是正则表达式的方法,方法参数为字符串。match为字符串的方法,参数为正则表达式对象。

2.match与exec都返回数组。如果调用exec方法的正则表达式没有分组内容,则返回第一个匹配的内容,全局匹配对它没有影响。如果正则表达式有匹配,则返回数组还包含分组匹配内容。在没有全局匹配的情况下,exec方法与match方法返回的数组一样,但是如果有全局匹配,则会返回所有匹配。如下所示:

//没有全局匹配

var str="chen,zhen";
var reg=/hen/;
alert(reg.exec(str));//返回 ["hen"]
alert(str.match(reg));//返回["hen"]
//全局匹配

var str="chen,zhen";
var reg=/hen/g;
alert(reg.exec(str));//返回 ["hen"]
alert(str.match(reg));//返回["hen","hen"]
//唯一匹配,且有分组

var str="chen,zhen";
var reg=/h(en)/;
alert(reg.exec(str));//返回 ["hen","en"]
alert(str.match(reg));//返回["hen","en"]
//全局匹配

var str="chen,zhen";
var reg=/h(en)/g;
alert(reg.exec(str));//返回 ["hen","en"]
alert(str.match(reg));//返回["hen","hen"]

相关文章