javascript如何将变量添加到字符串

我正在使用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中是否存在类似的东西,所以我可以避免简单的字符串连接。

谢谢你的帮助!

那么这是一个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']); 

使用String .replace()方法 :

 var apiUrlAnswer = 'https://api.stackexchange.com/2.0/answers/{ids}?order=desc&sort=activity&site=stackoverflow'; apiUrlAnswer = apiUrlAnswer.replace("{ids}", yourVariable); // OR, if there might be more than one instance of '{ids}' use a regex: apiUrlAnswer = apiUrlAnswer.replace(/\{ids\}/g, yourVariable); 

如果你经常这样做,使用正则表达式的更强大的替代方法是使用像mustache.js这样的客户端模板引擎。 我成功地使用了它,它快速轻巧。

 var view = { ids: "Andrew" }; var output = Mustache.render("https://api.stackexchange.com/2.0/answers/{{ids}}?order=desc&sort=activity&site=stackoverflow", view); 

这样做的好处是可以很好地分离数据和表示。

如何使用替换:

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

尝试

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