javascript如何向字符串添加变量

javascript如何向字符串添加变量,javascript,jquery,Javascript,Jquery,我正在使用javascript和jquery,我有一个字符串 var apiUrlAnswer = 'https://api.stackexchange.com/2.0/answers/{ids}?order=desc&sort=activity&site=stackoverflow'; 我需要用变量替换{ids} 在C#中,可以使用名为 String.Format(https://api.stackexchange.com/2.0/answers/{0}?order=de

我正在使用javascript和jquery,我有一个字符串

  var apiUrlAnswer = 'https://api.stackexchange.com/2.0/answers/{ids}?order=desc&sort=activity&site=stackoverflow';
我需要用变量替换
{ids}

在C#中,可以使用名为

String.Format(https://api.stackexchange.com/2.0/answers/{0}?order=desc&sort=activity&site=stackoverflow, myVariable);
我想知道Javascript中是否存在类似的东西,这样我就可以避免简单的字符串连接

谢谢你的帮助

使用字符串:


使用replace怎么样:

apiUrlAnswer = apiUrlAnswer.replace('{ids}', 'test');

如果您经常这样做,使用正则表达式的一个更健壮的替代方法是使用客户端模板引擎,如。我已经成功地使用了它,它的速度快,重量轻

var view = {
  ids: "Andrew"
};

var output = Mustache.render("https://api.stackexchange.com/2.0/answers/{{ids}}?order=desc&sort=activity&site=stackoverflow", view);
这样做的好处是可以很好地分离数据和演示文稿。

试试看

var id = 'your_id';
var apiUrlAnswer = 'https://api.stackexchange.com/2.0/answers/'+id+'?order=desc&sort=activity&site=stackoverflow';

这里有一个String.format(比如c#);我已经扩展了javascripts
String
对象,以包含如下格式方法:

String.format = function(stringToFormat, argsForFormat) {

    for (var i = 0; i < argsForFormat.length; i++) {
        var regex = new RegExp('\{(' + i + ')}', 'g');
        stringToFormat = stringToFormat.replace(regex, argsForFormat[i]);
    }

    return stringToFormat;    
};
或者一个内联版本看起来像这样

var args = [1, 'activity', 'stackoverflow', 'desc']   
var apiUrlAnswer = 'https://api.stackexchange.com/2.0/answers/{0}?order={3}&sort={1}&site={2}';
var apiUrlAnswer = String.format(apiUrlAnswer, args);
var apiUrlAnswer = String.format('https://api.stackexchange.com/2.0/answers/{0}?order={3}&sort={1}&site={2}', [1, 'activity', 'stackoverflow', 'desc']);
还有一个例子

String.format("http://{0}.{1}.com", ['www', 'stackoverflow']);

谢谢。。你知道另一天怎么做吗?有很多方法可以用你喜欢的JavaScript组合来做,但是
.replace()
是一种简单的方法,只需一句话就可以了…P.s。有些库实现了
String.format()
type函数,例如。如果你用谷歌搜索“JavaScript String.format”,你会得到很多选项。美好的或者更好的方法是,
replace(新的RegExp({'+i+'}',g'),…
,这样它就可以替换
{0}
@nnnnnn的多个实例,并按照建议进行修改,但只能使用更复杂的模式
'\{('+i+')}
String.format("http://{0}.{1}.com", ['www', 'stackoverflow']);