JS中一次替换字符串中的多个内容(不干扰它们)的最简单方法是什么?喜欢
"tar pit".replaceArray(['tar', 'pit'], ['capitol', 'house']);
...因此产生的是“国会大厦”而不是“咖啡屋”?
最佳答案
var replaceArray = function(str, from, to) {
var obj = {}, regex;
from.forEach(function(item, idx){obj[item] = to[idx];});
regex = new RegExp('(' + from.join('|') + ')', 'g');
return str.replace(regex, function(match){return obj[match]});
}
replaceArray("tar pit", ["tar", "pit"], ["capitol", "house"]);