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

本来、ありえない。ただし、ライブラリの使用を気にしない場合は、このsprintfの Javascript 実装を使用できます。

それ以外の:

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

以下を使用します。

alert(sprintf('%s %s doo', 'dog', 'dog'));
于 2013-02-02T16:17:06.857 に答える
1

いいえ、JavaScript には変数のエスケープ文字がないためです。

于 2013-02-02T16:04:35.000 に答える
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 に答える