Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多重同时替换_Javascript_String_Replace - Fatal编程技术网

Javascript 多重同时替换

Javascript 多重同时替换,javascript,string,replace,Javascript,String,Replace,在JS中,一次替换字符串中的多个内容(不受干扰)的最简单方法是什么?像 …所以它生产的是“国会大厦”,而不是“卡豪索尔大厦”?这个怎么样- function replaceArray(text, toBeReplacedArray, replacementArray) { for (var i = 0; i < toBeReplacedArray.length; i++) { var re = new RegExp(toBeReplacedArray[i], 'g'

在JS中,一次替换字符串中的多个内容(不受干扰)的最简单方法是什么?像

…所以它生产的是“国会大厦”,而不是“卡豪索尔大厦”?

这个怎么样-

function replaceArray(text, toBeReplacedArray, replacementArray) {
    for (var i = 0; i < toBeReplacedArray.length; i++) {
        var re = new RegExp(toBeReplacedArray[i], 'g');
        text = text.replace(re, '__' + i + '__');

    }

    for (var i = 0; i < replacementArray.length; i++) {
        var re = new RegExp('__' + i + '__', 'g');
        text = text.replace(re, replacementArray[i]);
    }
    return text;
}

replaceArray("tar pit", ['tar', 'pit'], ['capitol', 'house']);
函数replaceArray(文本、toberReplaceArray、replacementArray){
对于(变量i=0;i
最简单的答案:regex+1比我的代码好得多,看不到我的代码胜过你:)。谢谢,太完美了:)
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"]);
function replaceArray(text, toBeReplacedArray, replacementArray) {
    for (var i = 0; i < toBeReplacedArray.length; i++) {
        var re = new RegExp(toBeReplacedArray[i], 'g');
        text = text.replace(re, '__' + i + '__');

    }

    for (var i = 0; i < replacementArray.length; i++) {
        var re = new RegExp('__' + i + '__', 'g');
        text = text.replace(re, replacementArray[i]);
    }
    return text;
}

replaceArray("tar pit", ['tar', 'pit'], ['capitol', 'house']);