在 ES9 中推出了 String.prototype.matchAll() 方法,它能够返回一个迭代器对象,这个迭代器对象包含所有匹配的结果。在这篇文章中,我们将学习如何使用 matchAll() 方法来获取字符串的匹配结果。
什么是 matchAll 方法
String.prototype.matchAll() 方法是 ES9 引入的一种新方法。它是用来从字符串中获取匹配结果的。与 String.prototype.match() 方法不同,matchAll() 方法返回一个迭代器对象,而不是数组。
当我们使用 matchAll() 方法时,会根据正则表达式对字符串进行匹配。这个方法返回的是一个迭代器对象,我们可以使用 for...of 循环来迭代这个对象,并且获取每一个匹配结果。
如何使用 matchAll 方法
使用 matchAll 方法非常简单,我们只需要在一个字符串上调用这个方法,并且传入一个正则表达式参数即可。下面是一个简单的示例代码:
const str = "it is a sunny day, and I feel happy"; const regex = /[A-Za-z]+/g; const result = str.matchAll(regex); console.log(result);
在这个示例中,我们创建了一个字符串和一个正则表达式,然后使用 matchAll() 方法来获取匹配结果。这个方法返回一个迭代器对象,我们可以用 for...of 循环来遍历每一个结果对象,然后执行相关操作。
如何遍历 matchAll 方法返回的结果
当我们调用 matchAll() 方法后,会返回一个迭代器对象。我们需要使用 for...of 循环来遍历这个迭代器对象,获取每一个匹配结果。下面是一个使用 for...of 循环遍历 matchAll() 方法返回结果的示例代码:
// javascriptcn.com 代码示例 const str = "it is a sunny day, and I feel happy"; const regex = /[A-Za-z]+/g; const result = str.matchAll(regex); for (const match of result) { console.log(match); }
在上面的代码中,我们使用了 for...of 循环来遍历匹配结果。每一次循环我们会得到一个匹配结果对象,这个对象包含了一些属性和方法。下面是一些常用的属性和方法:
- match: 匹配到的完整字符串
- index: 匹配的字符串在主字符串中的索引值
总结
在这篇文章中,我们介绍了 ES9 中新增的 String.prototype.matchAll() 方法,它能够返回一个迭代器对象,用于获取字符串匹配的结果。我们通过示例代码演示了如何使用它以及如何遍历匹配结果。matchAll() 方法非常方便,它可以让我们轻松地从一个字符串中获取匹配的结果,并且扩展了正则表达式的能力。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653f37a17d4982a6eb8bf598