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