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"]);

07-26 04:46