2 回答

TA贡献1835条经验 获得超7个赞
在 JS 中,您可以编写一个单行的 reduce(它是为这种对数组进行操作但返回单个值的确切场景而设计的)(mdn)循环为:
const regexStorage = [{
value: '@',
replace: 'hello',
}, {
value: '#',
replace: 'bye',
}];
let replaceValue = v => regexStorage.reduce((v, {value, replace}) => v.replace(new RegExp(replace, 'g'), value), v);
let str = 'hi hello bye bi hello';
console.log(replaceValue(str));
console.log(str);

TA贡献1906条经验 获得超10个赞
您可以遍历正则表达式存储
const regexStorage = [
{
value: '@',
replace: 'hello',
},
{
value: '#',
replace: 'bye',
}
]
function replaceValue(v) {
for(var i = 0; i < regexStorage.length; i++){
v = v.replace(new RegExp(regexStorage[i].replace, "g"), regexStorage[i].value);
}
return v;
}
var data = "hello, my name is andam. bye.";
console.log(data);
console.log(replaceValue(data));
添加回答
举报