2014-09-16 1 views
2

В Objective-C У меня естьЧто является эквивалентом строки с форматом в JavaScript

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

Как бы я идти об этом в JavaScript?

Где у меня есть переменная, и я хочу вставлять между другими строками или то же самое для числа или другого типа переменной.

ответ

3

В javascript вы просто поместите переменную между строкой. Но убедитесь, что это строка, а не массив или что-то еще.

Так, например, вы могли бы иметь

var string = "mystring"; 
outputString = "blah blah " + string + " blah blah blah"; 

это будет выход

//blah blah mystring blah blah blah 
0

В JavaScript вы просто использовать + символы для отдельной строки, если вы хотите, чтобы быть в пределах или добавить его к другим строкам,

"hi there" + person + "how are you today" + good; 

Это предполагает, что вы не указали переменные

var person 
var good 
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)

Смежные вопросы