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';