利用 ECMAScript 2021(ES12)中的匹配全部(matchAll)方法匹配正则表达式

阅读时长 2 分钟读完

在前端开发中,经常需要用到正则表达式来进行字符串匹配。而在 ECMAScript 2021(ES12)中,新增了一个非常有用的方法——matchAll(),可以更方便地匹配字符串中符合正则表达式的所有子串。

matchAll() 方法

matchAll() 方法返回一个迭代器,可以使用 for...of 循环遍历所有匹配的子串。其语法如下:

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

示例

以下是一个简单的示例代码,使用 matchAll() 方法匹配一个字符串中所有符合正则表达式的子串,并输出匹配结果:

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

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

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

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

在上述代码中,我们使用正则表达式 \b\w{5}\b 匹配所有长度为 5 的单词,并将匹配结果保存在 matches 变量中。然后使用 for...of 循环遍历所有匹配的子串,并将其打印输出。

输出结果如下:

指导意义

使用 matchAll() 方法可以更方便地匹配字符串中符合正则表达式的所有子串,避免了使用 exec() 方法时需要多次调用的繁琐操作。同时,由于 matchAll() 方法返回的是一个迭代器,可以配合 for...of 循环方便地遍历所有匹配的子串,提高了代码的可读性和可维护性。

在实际开发中,我们可以利用 matchAll() 方法来实现一些常见的字符串处理操作,比如统计字符串中符合某个条件的子串个数、替换字符串中的某些子串等等。

总结

matchAll() 方法是 ECMAScript 2021(ES12)中新增的一个非常有用的方法,可以更方便地匹配字符串中符合正则表达式的所有子串。在实际开发中,我们可以利用这个方法来简化字符串处理操作,提高代码的可读性和可维护性。

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

纠错
反馈