ES9 中字符串的 matchAll() 方法及其应用

阅读时长 4 分钟读完

ES9 中字符串的 matchAll() 方法及其应用

ES9(ECMAScript 2018)是 JavaScript 的最新标准,其中新增了一些有用的功能,如 Promise finally() 方法、正则表达式命名捕获组等。本文将介绍 ES9 中新增的字符串方法 matchAll() 及其应用。

matchAll() 方法

matchAll() 方法返回一个迭代器对象,它包含了字符串中所有匹配正则表达式的结果。该方法只接受正则表达式作为参数,不支持字符串。

语法:

其中,str 为要进行匹配的字符串,regexp 为正则表达式。

matchAll() 方法返回的迭代器对象包含多个结构相同的匹配对象,每个对象都有以下属性:

  • 0: 匹配到的完整字符串。
  • 1: 第一个捕获组的匹配值。
  • 2: 第二个捕获组的匹配值。
  • index: 匹配到的字符串在原字符串中的索引。
  • input: 原字符串。

使用方法:

输出结果为:

示例代码中,首先定义字符串 str 和正则表达式 regExp,接着使用 matchAll() 方法对 str 进行匹配,将匹配结果存储在 result 中,并遍历 result 中的每一个匹配对象,输出捕获组 1 的值和匹配的起始位置。

matchAll() 方法的应用

matchAll() 方法可以方便地对复杂的字符串进行处理,例如从 Markdown 格式文本中提取全部图片URL地址。

示例代码:

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

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

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

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

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

--

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

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

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

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

输出结果为:

示例代码中,首先定义了一个 Markdown 文本字符串 markdown,接着使用正则表达式 imageRegEx 捕获其中的所有图片URL地址。然后,使用 matchAll() 方法对 markdown 进行匹配,并将匹配的所有图片 URL 地址存储在数组 imageUrls 中。最后,输出数组 imageUrls

总结

本文介绍了 ES9 中字符串方法 matchAll() 及其应用。matchAll() 方法可以方便地对复杂的字符串进行处理,值得前端开发者们在代码中使用。

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

纠错
反馈