📜  Javascript String matchAll() 方法(1)

📅  最后修改于: 2023-12-03 15:16:06.975000             🧑  作者: Mango

Javascript String matchAll() 方法

Javascript String matchAll() 方法返回一个带有所有匹配的迭代器,匹配通过指定的正则表达式进行。 此迭代器返回每个匹配的详细信息,包括匹配的文本、索引、组捕获等。

语法
str.matchAll(regexp)
参数

regexp:一个正则表达式对象。如果传入一个非正则表达式对象,则使用 new RegExp(obj) 将其强制转换为正则表达式对象。如果省略 regexp 参数,则默认是 /(?:)/,即空正则表达式。

返回

一个迭代器,集合了所有匹配的结果信息。

示例
let str = "Hello world, welcome to the universe.";

let regex = /[a-z]/g;

let matchAllResult = str.matchAll(regex);

for (let match of matchAllResult) {
  console.log(match); // 每次循环输出匹配的详细信息
}

上述代码执行后,控制台输出如下:

["e", index: 1, input: "Hello world, welcome to the universe."]
["l", index: 2, input: "Hello world, welcome to the universe."]
["l", index: 3, input: "Hello world, welcome to the universe."]
["o", index: 4, input: "Hello world, welcome to the universe."]
["o", index: 7, input: "Hello world, welcome to the universe."]
["r", index: 8, input: "Hello world, welcome to the universe."]
["l", index: 10, input: "Hello world, welcome to the universe."]
["d", index: 11, input: "Hello world, welcome to the universe."]
["w", index: 13, input: "Hello world, welcome to the universe."]
["e", index: 14, input: "Hello world, welcome to the universe."]
["l", index: 15, input: "Hello world, welcome to the universe."]
["c", index: 17, input: "Hello world, welcome to the universe."]
["o", index: 18, input: "Hello world, welcome to the universe."]
["m", index: 19, input: "Hello world, welcome to the universe."]
...

以上代码对 str 变量中的字符串进行了正则匹配,用 matchAll() 方法返回了一个迭代器。通过 for...of 循环,我们遍历这个迭代器中的所有匹配结果,输出了每次匹配的详细信息。

这是 matchAll() 方法的一个基本示例,可以看到其返回结果很详细,可以用于更复杂的正则表达式匹配。