在 ES9 中使用 String.prototype.matchAll() 遍历正则表达式的全部匹配结果

在 ES9 中使用 String.prototype.matchAll() 遍历正则表达式的全部匹配结果

在前端开发中,经常会使用到正则表达式来进行字符串匹配和替换。在 ES9 中,新增了 String.prototype.matchAll() 方法,可以方便地遍历正则表达式的全部匹配结果。

使用 String.prototype.matchAll() 方法,可以返回一个迭代器对象,通过遍历这个迭代器对象,我们可以依次获取到所有的匹配结果。这个迭代器对象包含了多个属性,其中最重要的是 value 和 done 属性。value 属性表示当前匹配到的结果,done 属性表示是否遍历完成。

下面是一个示例代码,演示如何使用 String.prototype.matchAll() 方法:

在上面的示例代码中,我们首先定义了一个字符串 str 和一个正则表达式 regex。然后,我们使用 str.matchAll(regex) 方法获取到一个迭代器对象 matches。接着,我们使用 for...of 循环遍历这个迭代器对象,依次获取到所有的匹配结果。

在循环中,我们可以通过 match[0] 获取到匹配到的完整字符串,通过 match[1] 获取到匹配到的第一个分组,通过 match.index 获取到匹配到的位置,通过 match.input 获取到匹配的原始字符串。

总结

在 ES9 中,使用 String.prototype.matchAll() 方法可以方便地遍历正则表达式的全部匹配结果。这个方法的使用非常简单,只需要传入一个正则表达式,就可以获取到一个迭代器对象,通过遍历这个迭代器对象,我们可以依次获取到所有的匹配结果。在实际开发中,我们可以使用这个方法来方便地处理字符串匹配和替换的问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655898d4d2f5e1655d2c86ac


纠错
反馈