我试图在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
}
我知道如何单独查找/替换,但是我想知道是否存在一种简单的方法来处理多对值(区分大小写)。
答案 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"));