JavaScript中match()与exec()返回值及属性详解

作者:青柠

时间:2026-10-29

浏览:512

本文详细对比JavaScript中String.match()与RegExp.exec()两个正则匹配方法的异同。两者均返回首个匹配项数组或null,且结果数组额外包含index和input属性。通过具体代码示例,解析捕获组在返回值中的表现及位置索引含义,帮助开发者准确处理正则匹配结果。

文章目录

match()与exec()语法及核心概念

语法:


exec() :
RegExpObject.exec(string) 
match() :
stringObject.match(string)
stringObject.match(regexp) 

核心知识点:

exec()属于RegExp对象的方法,而match()则是String对象的方法。两者在功能上具有相似性:当找到匹配项时,均返回包含第一个匹配项信息的数组;若未找到匹配项,则返回null。尽管返回结果是Array的实例,但它额外包含两个属性:index和input。其中,index表示匹配项在原字符串中的起始位置,input表示应用正则表达式的原始字符串。在返回的数组中,索引0的元素是与整个模式匹配的字符串,后续元素则是与模式中捕获组匹配的字符串;若正则表达式未定义捕获组,则返回的数组仅包含索引0的一项。

测试环节:

针对match()方法的测试代码示例如下:

match()方法测试与结果分析


var text = "mom and dad and baby";
var pattern = /(mom and )?(dad and )?baby/;
var matches = text.match(pattern);//pattern.exec(text);
console.log(matches.index);
console.log(matches.input);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);

match()方法的测试结果截图如下:

match()与exec()语法及核心概念

针对exec()方法的测试代码示例如下:

exec()方法测试与结果分析


var text = "mom and dad and baby";
var pattern = /(mom and )?(dad and )?baby/;
var matches = pattern.exec(text);//text.match(pattern);
console.log(matches.index);
console.log(matches.input);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);

exec()方法的测试结果截图如下:

match()与exec()语法及核心概念

String对象相关方法说明

String对象正则相关方法总结

方法 描述
exec 检索字符串中指定的值。返回找到的值,并确定其位置
test 检索字符串中指定的值。返回 true 或 false。

String对象相关方法说明

方法 描述
match() 找到一个或多个正则表达式的匹配。
replace() 替换与正则表达式匹配的子串。
search() 检索与正则表达式相匹配的值。

关于JavaScript中match()与exec()返回值及属性的介绍到此结束,希望以上内容能为您提供帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章