深入理解 ES11 中的 String.prototype.matchAll 方法及使用场景

阅读时长 4 分钟读完

在 ES11 中,新增了一个方法 String.prototype.matchAll,该方法可以用于在字符串中查找所有匹配正则表达式的子串,并返回一个迭代器。

语法

参数

  • regexp:一个正则表达式对象。

返回值

一个迭代器,包含所有匹配正则表达式的子串。

示例

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

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

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

使用场景

提取字符串中的所有链接

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

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

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

将字符串中的所有日期格式转换为 ISO 格式

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

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

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

总结

String.prototype.matchAll 方法可以方便地提取字符串中的所有匹配正则表达式的子串,可以在很多场景下使用。需要注意的是,该方法返回一个迭代器,而不是数组,需要使用 for...of 循环遍历。

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

纠错
反馈