在php中,你可以使用雙引號內的變量。例如:在Javascript中引用的字符串內使用變量?
$dog = "scooby";
echo "$dog $dog doo";
是否有可能做在JavaScript 類似的東西,而不打破串起來成片:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
感謝(提前)對你的幫助。
在php中,你可以使用雙引號內的變量。例如:在Javascript中引用的字符串內使用變量?
$dog = "scooby";
echo "$dog $dog doo";
是否有可能做在JavaScript 類似的東西,而不打破串起來成片:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
感謝(提前)對你的幫助。
不,你不能。 JavaScript沒有string interpolation,所以你必須連接:
var dog = "fido"
dog + " " + dog + " doo"
不,因爲JavaScript中沒有變量的轉義字符。
所有你需要做的是利用字符串替換
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace
如果你想讓它做根據的道理,你」 ð需要一些更多的工作:
function replacer(match, p1, string){
// p1 is the first group (\w+)
var stuff = {
dog: "woof",
cat: "meow"
};
return stuff[p1] || "";
};
newString = "A dog says $dog. A cat says $cat.".replace(/\$(\w+)/g, replacer);
結果
"A dog says woof. A cat says meow."
編輯:其實,如果你想在全局變量上做一種字符串插值,這也很容易,雖然我不會推薦這個。 請不要除非你有一個非常好的理由。如果你說你有一個很好的理由,我可能不會相信你。我的第一個例子,我給一個特定的字典/對象進行搜索,更更好。 請不要因爲這個工作而污染全局命名空間!
var dog ="woof";
var cat = "meow";
function replacer(match, p1, string){
return window[p1] || "";
};
newString = "A dog says $dog. A cat says $cat.".replace(/\$(\w+)/g, replacer);
本地化,不可能。但是,如果您不介意使用庫,則可以使用此sprintf的Javascript實現。
相反的:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
你可以使用:
alert(sprintf('%s %s doo', 'dog', 'dog'));
好了,你會做它沒有$,但'警報(狗+ 「」 +狗+ 「鬥」) ;'是javascript的方式。 – Pete
只要從你的例子中刪除美元符號,它應該工作。 –
你可以在JS中使用某種'sprintf'實現:http://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format。 –