猿问

如何在 JavaScript 中将 str.replace 与许多查找/替换对一起使用

我需要 JavaScript 中的一个函数,该函数将一个字符串作为输入,将多个子字符串替换为其对应的值,然后返回结果。例如:


function findreplace(inputStr) {

    const values = {"a": "A",

              "B": "x",

              "c": "C"};


    // In this example, if inputStr is "abc", then outputStr should be "AbC".


    return outputStr

}

我知道如何单独查找和替换,但我想知道是否有一种简单的方法可以同时处理多对(区分大小写)值。


ABOUTYOU
浏览 111回答 2
2回答

撒科打诨

只需在values以下帮助下迭代Object.entries(values):function findreplace(inputStr) {  const values = {    "a": "A",    "B": "x",    "c": "C"  };  for (const [search, replace] of Object.entries(values)) {    inputStr = inputStr.replace(search, replace);      }  return inputStr;}console.log(findreplace("abc"));

交互式爱情

您可以join keys构建一个正则表达式,然后replace相应地function findreplace(inputStr) {  let values = { "a": "A", "B": "x", "c": "C" };  let regex = new RegExp("\\b" + Object.keys(values).join('|') + "\\b", 'g')  return inputStr.replace(regex, (m) => values[m] )}console.log(findreplace('aBc'))console.log(findreplace('AbC'))console.log(findreplace('ABC'))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答