如何用不同的字符替换相同的字符

时间:2017-12-28 05:43:54

标签: javascript jquery

我有一个字符串:

my_str = "select * from users where id = ? and name = ?;"

我还有一个数组来替换'?'

var arr = [1,'test']

我想先替换?有1和第二?在'测试'中 jQuery / JavaScript动态。可以有一些?在字符串中。

注意这个问题与MySQL无关,我写的查询只是一个字符串。

5 个答案:

答案 0 :(得分:2)

对于更动态的选项,其中replace是一个按顺序包含替换项的数组:



const string = 'select * from users where id = ? and name = ?;'
const replace = [1, 'test']

let index = 0
const output = string.replace(/\?/g, () => replace[index++])
console.log(output)




答案 1 :(得分:1)

多次使用替换方法进行替换。



var my_str = "select * from users where id = ? and name = ?;"

my_str = my_str.replace("?","1"); //replaces first "?"

my_str = my_str.replace("?","test"); //replaces second "?"

alert(my_str);




答案 2 :(得分:1)

使用replace功能,您可以执行此操作,只需多次使用replace来替换“'?'”。



var my_str = "select * from users where id = ? and name = ?;"
var arr = [1,'test']
my_str = my_str.replace("?",arr[0]).replace("?",arr[1]);
console.log(my_str);




答案 3 :(得分:0)

多次使用replace()

var r = "select * from users where id = ? and name = ?;".replace("?", '1').replace('?','test');
console.log(r);

如果您有一组值来替换'?':

var arr = [1,'test']
var r = "select * from users where id = ? and name = ?;"
for(i=0; i<arr.length; i++){
  r = r.replace('?',arr[i]);
}
console.log(r);

答案 4 :(得分:0)

获取?的索引并放入数组,然后编写要替换的函数。

    var str = "select * from users where id = ? and name = ?;"
    var indices = [];
    for(var i=0; i<str.length;i++) {
        if (str[i] === "?") indices.push(i);
    }
    str = replaceAt(str,0,"1");
    str = replaceAt(str,1,"Jonh");
    alert(str);
    
    function replaceAt(str, index, replacement) {
    	return str.substr(0, indices[index]) + replacement+ str.substr(indices[index] + 1, str.length);
    }

https://jsfiddle.net/vuph31/hgbms2s1/1/