在Objective-C中我有
NSString *string = @"mystring";
self.firstDHOpen.text = [NSString stringWithFormat:@"Closes in %@ min", string];
我将如何在javascript中执行此操作?
我有一个变量,我想在其他字符串之间插入,或者对于数字或其他类型的变量插入相同的字符串。
答案 0 :(得分:3)
在javascript中你只需将变量放在字符串之间。但要确保它的字符串不是数组或其他东西。
例如,你可能有
var string = "mystring";
outputString = "blah blah " + string + " blah blah blah";
这会输出
//blah blah mystring blah blah blah
答案 1 :(得分:3)
您可以使用功能替换将数据推送到不间断的字符串:
var replaced = "Closes @ in @ min".replace(/@/g, [].shift.bind(['early', 55]) );
document.write(replaced);
//=="Closes early in 55 min"
或者,只有一个符号,它甚至更清洁:
"Closes in @ min".replace("@", 55 ); // == "Closes in 55 min"
这可以避免“+”联接所需的所有额外报价平衡。 我还推荐像小胡子这样的模板包用于非平凡的数据插值。
如果你有一个数据对象,你也可以使用一个非常简单的模板函数来注入自己的属性:
function template(ob, str)
{
return str.replace(/{{([^}]+?)}}/g,
function(j,a){ return ob[a]||""; } );
}
data={
name: "fred",
date: new Date()
};
str="Hello {{name}}, it's {{date}}";
document.write( template( data, str ) );
//== ~Hello fred, it's Tue Sep 16 2014 18:50:41 GMT-0500 (Central Daylight Time)
答案 2 :(得分:0)
在javascript中,您只需使用+符号来分隔字符串,如果您想要介入其中或将其添加到其他字符串,
"hi there" + person + "how are you today" + good;
在您声明变量
之前假设var person
var good