在 php 中,您可以在双引号内使用变量。例如:
$dog = "scooby";
echo "$dog $dog doo";
是否可以在 javascript 中做类似的事情而不将字符串分成几部分:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
在此先感谢您的帮助。
在 php 中,您可以在双引号内使用变量。例如:
$dog = "scooby";
echo "$dog $dog doo";
是否可以在 javascript 中做类似的事情而不将字符串分成几部分:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
在此先感谢您的帮助。
不,你不能。Javascript没有字符串插值,所以你必须连接:
var dog = "fido"
dog + " " + dog + " doo"
不,因为 JavaScript 中的变量没有转义字符。
在本地,不可能。但是,如果您不介意使用库,则可以使用sprintf的这个 Javascript 实现。
代替:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
你会使用:
alert(sprintf('%s %s doo', 'dog', 'dog'));
您需要做的就是使用字符串替换
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);