2013-10-01 52 views
0

在蟒蛇&其他編程語言有一種方法在一個字符串之間的替代變量的值很容易,這樣,JS字符串格式化操作 - 替換一個變量值的字符串

name="python" 
a="My name is %s"%name 
print a 
>>>My name is python 

我如何做到這一點Java的腳本?普通的舊字符串連接對於大字符串來說非常複雜。

+2

可能重複的[String.Format in javascript?](http://stackoverflow.com/questions/2534803/string-format-in-javascript) – CodingIntrigue

回答

2

有沒有原生的方式來做到這一點。在JavaScript中,你這樣做:

var name = 'javascript'; 
var a = 'My name is ' + name; 
console.log(a); 

>>>My name is javascript 

否則,如果你真的想使用字符串格式化,你可以使用一個圖書館。 例如,https://github.com/alexei/sprintf.js

隨着sprintf庫:

var name = 'javascript'; 
sprintf('My name is %s', name); 

>>>My name is javascript 
+0

console.log沒有字符串格式化/替換。 var myobject = {foo:'bar',x:'y'}; console.log(「myobject =%o」,myobject); console.log(「foo =%s」,myobject.foo); – keith73

0

這是不可能的JavaScript,因此實現這一目標的唯一途徑是串聯。另一種方法可能是用正則表達式替換特定的值。

1

另一種方法是使用CoffeeScript。他們有像紅寶石般的糖

name = "javascript" 
a = "My name is #{name}" 
console.log a 
# >>> My name is javascript 
0

使用節點,這應該工作。

[[email protected]] ~ :: node 
> var str = 'string substitute!'; 
> console.log('This is a %s', str); 
This is a string substitute! 
> 
3

這是2017年,我們有template literals

var name = "javascript"; 
console.log(`My name is ${name}`); 
// My name is javascript 

它採用回剔沒有單引號

您可能會發現該問題和答案也很有用。 JavaScript equivalent to printf/string.format

+0

應該接受答案,但問題在5年前問過。 –

+0

我很喜歡這個答案,但是我們不幸生活在一個世界上,那裏有大量的ES6代碼,這是ES6及更高版本,不是嗎? –