0

在 php 中,您可以在双引号内使用变量。例如:

$dog = "scooby";
echo "$dog $dog doo";

是否可以在 javascript 中做类似的事情而不将字符串分成几部分:

var dog = "scooby";
alert($dog + " " + $dog + " doo");

在此先感谢您的帮助。

4

4 回答 4

2

不,你不能。Javascript没有字符串插值,所以你必须连接:

var dog = "fido"
dog + " " + dog + " doo"
于 2013-02-02T16:05:43.607 回答
1

不,因为 JavaScript 中的变量没有转义字符。

于 2013-02-02T16:04:35.000 回答
1

在本地,不可能。但是,如果您不介意使用库,则可以使用sprintf的这个 Javascript 实现。

代替:

var dog = "scooby";
alert($dog + " " + $dog + " doo");

你会使用:

alert(sprintf('%s %s doo', 'dog', 'dog'));
于 2013-02-02T16:17:06.857 回答
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);
于 2013-02-02T16:10:20.103 回答