在前端开发中,经常需要用到正则表达式来进行字符串匹配。而在 ECMAScript 2021(ES12)中,新增了一个非常有用的方法——matchAll()
,可以更方便地匹配字符串中符合正则表达式的所有子串。
matchAll() 方法
matchAll()
方法返回一个迭代器,可以使用 for...of
循环遍历所有匹配的子串。其语法如下:
string.matchAll(regexp)
其中,string
为要匹配的字符串,regexp
为要匹配的正则表达式。
示例
以下是一个简单的示例代码,使用 matchAll()
方法匹配一个字符串中所有符合正则表达式的子串,并输出匹配结果:
-- -------------------- ---- ------- ----- --- - ------ ------ ---- -- - ---- --------- ----- ----- - ------------- ----- ------- - -------------------- --- ------ ----- -- -------- - ---------------------- -
在上述代码中,我们使用正则表达式 \b\w{5}\b
匹配所有长度为 5 的单词,并将匹配结果保存在 matches
变量中。然后使用 for...of
循环遍历所有匹配的子串,并将其打印输出。
输出结果如下:
Hello world string
指导意义
使用 matchAll()
方法可以更方便地匹配字符串中符合正则表达式的所有子串,避免了使用 exec()
方法时需要多次调用的繁琐操作。同时,由于 matchAll()
方法返回的是一个迭代器,可以配合 for...of
循环方便地遍历所有匹配的子串,提高了代码的可读性和可维护性。
在实际开发中,我们可以利用 matchAll()
方法来实现一些常见的字符串处理操作,比如统计字符串中符合某个条件的子串个数、替换字符串中的某些子串等等。
总结
matchAll()
方法是 ECMAScript 2021(ES12)中新增的一个非常有用的方法,可以更方便地匹配字符串中符合正则表达式的所有子串。在实际开发中,我们可以利用这个方法来简化字符串处理操作,提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6575e451d2f5e1655df2ec97