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

时间:2019-10-13 18:19:10

标签: javascript

我试图在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
}

我知道如何单独查找/替换,但是我想知道是否存在一种简单的方法来处理多对值(区分大小写)。

2 个答案:

答案 0 :(得分:1)

您可以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'))

答案 1 :(得分:1)

只需借助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"));