我只是在脑海中做这件事,但这应该可行。
var new_str = str;
for (var key in arr) {
if (!arr.hasOwnProperty(key)) {
continue;
}
new_str = new_str.replace(key, arr[key]);
}
如果您希望替换所有出现的数字,则需要将 Regex 合并到组合中:
var new_str = str;
for (var key in arr) {
if (!arr.hasOwnProperty(key)) {
continue;
}
new_str = new_str.replace(new RegExp(key, "g"), arr[key]);
}
另外,我会选择除 之外的另一个名称arr
,因为这意味着它显然是一个对象时是一个数组。此外,请确保您只for-in
在对象上使用循环,而不是数组,因为原型泄漏和其他问题。
您也可以使用 jQuery 执行此操作,但这可能有点过头了:
var new_str = str;
$.each(arr, function (key, value) {
new_str = new_str.replace(key, value);
});