摘要:在本教程中,您将了解 JavaScript 字符串 match()
方法,用于将字符串与正则表达式匹配。
要了解 match()
方法的工作原理以及如何有效使用它,您应该了解 正则表达式 的基本知识。
JavaScript match() 方法简介
字符串 match()
方法将 字符串 与 正则表达式 匹配。
str.match(regexp);
Code language: JavaScript (javascript)
如果 regexp
不是正则表达式,则 match()
将使用 RegExp()
构造函数将其转换为正则表达式。match()
返回一个 数组,具体取决于正则表达式是否使用全局标志 (g
) 标志。
- 如果
regexp
使用g
标志,则match()
方法将返回一个包含所有匹配项的数组。结果不包含捕获组。 - 如果
regexp
不使用g
标志,则match()
方法将返回第一个匹配项及其相关的捕获组。匹配结果与RegExp.exec()
的结果相同,只是多了几个属性。有关详细信息,请参见下面的示例。
如果未找到任何匹配项,则 match()
返回 null
。
JavaScript 正则表达式 match() 方法
让我们来看一些使用 match()
方法的示例。
1) 使用具有全局标志的表达式使用 JavaScript 正则表达式 match() 方法
以下示例显示了如何使用具有全局标志 (g
) 的 match()
方法。它返回一个匹配项数组。
let str = "Price: $5–$10";
let result = str.match(/\$\d+/g);
console.log(result);
Code language: JavaScript (javascript)
输出
["$5", "$10"]
Code language: JavaScript (javascript)
在此示例中,match()
搜索 $
符号后的任何数字。
2) 使用没有全局标志的表达式使用 JavaScript 正则表达式 match() 方法
以下示例说明了如何使用没有全局标志的正则表达式使用 match()
方法。它返回一个包含第一个匹配项的数组,以及其他属性。
let str = "Price: $5–$10";
let result = str.match(/\$\d+/);
console.log(result);
Code language: JavaScript (javascript)
输出
附加属性为
index
:是找到匹配项的索引。input
:搜索字符串的副本。groups
:命名的捕获组对象的键值分别为名称和捕获组。在此示例中,它是undefined
,因为我们没有定义任何命名捕获组。
3) 使用 JavaScript 正则表达式 match() 方法和命名捕获组
以下示例显示了如何使用具有命名 捕获组 的 match()
方法。它将 "yellow"
捕获到名为 "color"
的组中。
let str = 'I like yellow color palette!';
let re = /(?<color>yellow) color/;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)
输出:

在本教程中,您学习了如何使用 JavaScript 字符串 match()
方法将字符串与正则表达式匹配。
本教程是否有用?