📌  相关文章
📜  javascript 查找字符串中的所有匹配项 - Javascript (1)

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

JavaScript 查找字符串中的所有匹配项 - JavaScript

在 JavaScript 中,我们可以使用正则表达式来查找字符串中的所有匹配项。下面是一些例子。

方法一:使用 RegExp 对象的 exec 方法
const regex = /\d+/g;
const str = 'Hello 123 world 456!';
let match;

while ((match = regex.exec(str)) !== null) {
  console.log(`Found ${match[0]} at position ${match.index}`);
}

在上面的示例中,我们创建了一个 RegExp 对象,通过 /\d+/g 正则表达式来匹配一个或多个数字,并将这个 RegExp 对象赋值给变量 regex。然后我们定义了一个字符串 str'Hello 123 world 456!',并在其上执行 regex.exec(str) 方法,返回一个数组,其中第一个元素是找到的匹配项,其余元素(如果有)是捕获组的匹配内容。如果找不到匹配项,exec 方法将返回 null

我们可以通过这个返回的数组来循环输出所有匹配项和它们的位置。

方法二:使用 String 对象的 match 方法
const regex = /\d+/g;
const str = 'Hello 123 world 456!';
const matches = str.match(regex);

console.log(matches); // Array [ "123", "456" ]

在上面的示例中,我们使用 String 对象的 match 方法来查找字符串中的所有匹配项。与 exec 方法一样,我们使用了 /\d+/g 正则表达式来匹配一个或多个数字,并将其作为参数传递给 match 方法。match 方法将返回一个数组,其中包含所有匹配项。如果没有找到匹配项,则返回 null

方法三:使用 String 对象的 replace 方法
const regex = /\d+/g;
const str = 'Hello 123 world 456!';
const newStr = str.replace(regex, '#');

console.log(newStr); // Hello # world #

在上面的示例中,我们使用了 String 对象的 replace 方法来替换字符串中的所有匹配项。我们使用了 /\d+/g 正则表达式来匹配一个或多个数字,并将其作为第一个参数传递给 replace 方法。第二个参数是我们要用来替换匹配项的字符串。在这个例子中,我们使用了 # 字符串来替换每个匹配项。最后,replace 方法将返回一个新的字符串。

无论你选择哪种方法,都可以轻松地查找字符串中的所有匹配项,使你的代码更加灵活和可维护。