什么是javascript格式的字符串的等价物

时间:2014-09-16 23:32:10

标签: javascript objective-c string

在Objective-C中我有

NSString *string = @"mystring";
self.firstDHOpen.text = [NSString stringWithFormat:@"Closes in %@ min", string];

我将如何在javascript中执行此操作?

我有一个变量,我想在其他字符串之间插入,或者对于数字或其他类型的变量插入相同的字符串。

3 个答案:

答案 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