JavaScript中match()与exec()返回值及属性详解
本文详细对比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()方法的测试结果截图如下:

针对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()方法的测试结果截图如下:

String对象相关方法说明
String对象正则相关方法总结
| 方法 | 描述 |
| exec | 检索字符串中指定的值。返回找到的值,并确定其位置 |
| test | 检索字符串中指定的值。返回 true 或 false。 |
String对象相关方法说明
方法
描述
match()
找到一个或多个正则表达式的匹配。
replace()
替换与正则表达式匹配的子串。
search()
检索与正则表达式相匹配的值。
关于JavaScript中match()与exec()返回值及属性的介绍到此结束,希望以上内容能为您提供帮助。
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
