如何使用 ES11 中新的 matchAll() 方法?

阅读时长 4 分钟读完

在 ES11 中,JavaScript 增加了 matchAll() 函数,该函数用于在字符串中匹配所有与正则表达式模式匹配的字符串。它是 String.prototype 上的一个新的方法,我们可以使用它来获取所有匹配字符串的详细信息。本文将介绍 matchAll() 函数的语法、使用方法和示例。

matchAll() 函数的语法

matchAll() 函数的语法如下:

其中,string 是要匹配的字符串,regexp 是正则表达式。该函数返回一个迭代器(Iterator),我们可以使用 for...of 循环迭代器来访问匹配结果。

matchAll() 函数的使用方法

使用 matchAll() 函数,我们可以获取每个匹配项的详细信息,包括匹配字符串、子字符串、索引和组(capture groups)。以下是获取匹配字符串和索引的示例:

上面这个示例将匹配所有单词,并输出它们的字符串和索引。

除了匹配字符串和索引,我们还可以获取子字符串和组(捕获组)的信息。以下是获取子字符串和组信息的示例:

-- -------------------- ---- -------
----- --- - ----- --- ---------- ----
----- ----- - ---------- ----------

--- ------ ----- -- -------------------- -
  ---------------------- -- ------
  ---------------------- -- -------
  ---------------------- -- -------
  ---------------------- -- ----
-

上面这个示例将匹配两个单词和一个空字符,并输出它们的字符串、两个子字符串和一个组。

matchAll() 函数的示例

以下是一些 matchAll() 函数的示例,它们可以帮助你更好地了解该函数的使用方法和场景。

示例 1:匹配所有数字并求和

-- -------------------- ---- -------
----- --- - -- - ---
----- ----- - -------

--- --- - --
--- ------ ----- -- -------------------- -
  --- -- -----------------
-

----------------- -- -- -

示例 2:匹配所有单词并统计出现次数

-- -------------------- ---- -------
----- --- - ----- --- ---------- -- ------
----- ----- - -----------

----- ---------- - --- ------
--- ------ ----- -- -------------------- -
  ----- ---- - ---------
  -- ---------------------- -
    -------------------- -------------------- - ---
  - ---- -
    -------------------- ---
  -
-

------------------------ -- -- ------ ------- -- -- ----- -- -- ---------- -- -- ---- -- --

示例 3:从 HTML 中提取链接

上面这个示例将从 HTML 中提取链接和文字内容。

总结

使用 matchAll() 函数,我们可以轻松地获取所有匹配字符串的详细信息,并在实际应用中发挥作用。当您需要解析复杂文本时,该函数将非常有用。希望本文能够帮助您更好地了解 matchAll() 函数的使用方法和场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647f015348841e9894eb22ca

纠错
反馈