JavaScript多个同时替换

Kur*_*aze 4 javascript string replace

JS中最简单的方法是一次替换字符串中的多个东西(没有它们干扰)?喜欢

"tar pit".replaceArray(['tar', 'pit'], ['capitol', 'house']);
Run Code Online (Sandbox Code Playgroud)

...所以它产生"国会大厦",而不是"cahouseol房子"?

Yur*_*nko 6

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"]);
Run Code Online (Sandbox Code Playgroud)