在 ES10 中,新增了一个针对字符串的方法 String.prototype.matchAll()
,该方法可以在一个字符串中查找所有匹配某个正则表达式的子串,并返回一个迭代器,该迭代器包含所有匹配到的子串及其对应的匹配信息。
语法
--------------------
其中,str
是被搜索的字符串,regexp
是用于匹配的正则表达式。
返回值
matchAll()
方法返回一个迭代器,该迭代器包含所有匹配到的子串及其对应的匹配信息。
用法示例
----- --- - ------- ------ --- --- --- -------- ----- ------ - ---------- ----- ------- - --------------------- --- ------ ----- -- -------- - --------------------- ------------- -
在上面的示例中,我们首先定义了一个字符串 str
和一个正则表达式 regexp
,然后使用 matchAll()
方法查找所有匹配 regexp
的子串,并将它们存储在一个迭代器 matches
中。
接着,我们使用 for...of
循环遍历迭代器 matches
,并输出每个匹配到的子串及其在原字符串中的索引位置。
输出结果如下:
------ - ------- - ---- -- ----- -- ----- -- ------- --
指导意义
String.prototype.matchAll()
方法为我们提供了一种更方便、更高效的方式来查找字符串中的所有匹配项。相比于 String.prototype.match()
方法,它不仅可以返回第一个匹配项,而是可以返回所有匹配项,并且还可以提供更详细的匹配信息。
在实际开发中,我们经常需要在字符串中查找符合某种规则的子串,例如搜索引擎中的关键词匹配、文本编辑器中的查找替换等。使用 String.prototype.matchAll()
方法可以帮助我们更轻松地完成这些任务。
总结
String.prototype.matchAll()
方法是 ES10 中新增的一个字符串方法,用于查找一个字符串中所有匹配某个正则表达式的子串,并返回一个迭代器,该迭代器包含所有匹配到的子串及其对应的匹配信息。使用该方法可以更方便、更高效地查找字符串中的匹配项,特别适用于搜索引擎、文本编辑器等实际开发场景。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/663dabbcd3423812e4bbd530