exec()、match()

本文详细解析了JavaScript中正则表达式的match()和exec()方法的区别,包括在不同情况下的行为表现,如全局匹配、子表达式匹配等场景,帮助读者深入理解这两种方法的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

exec()与match()的区别:exec()是正则表达式的方法,它的参数是字符串;match()是字符串的方法,它的参数可以是正则表达式。

1.当正则表达式无子表达式,并且定义为非全局匹配时,exec()和match()执行的结果是一样的。

var str="00css3 HTML5";
var reg=/\w+/;
console.log(str.match(reg));
console.log(reg.exec(str));

2.当正则表达式无子表达式,并且定义为全局匹配时,exec()和match()执行的结果不一样。match()返回的是多个元素数组,exec()返回第一个匹配的字符串内容。

var str="00css3 HTML5";
var reg=/\w+/g;
var reg2=/\w+5/g;
console.log(str.match(reg));
console.log(str.match(reg2));
console.log(reg.exec(str));

3.当正则表达式有子表达式,并且定义为非全局匹配时,exec()和match()执行的结果是一样的。

var str="00css3 HTML5";
var reg1=/([A-z]+)\d/;
console.log(str.match(reg1));
console.log(reg1.exec(str));

4.当正则表达式有子表达式,并且定义为全局匹配时,exec()和match()执行的结果不一样。此时match()将忽略子表达式,只查找全匹配正则表达式并返回所有内容。

var str="00css3 HTML5";
var reg1=/([A-z]+)\d/g;
console.log(str.match(reg1));
console.log(reg1.exec(str));

exec()与全局是否定义无关系,而match()则与全局相关联。当定义为非全局时,两者执行结果相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值