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"
本来、ありえない。ただし、ライブラリの使用を気にしない場合は、このsprintfの Javascript 実装を使用できます。
それ以外の:
var dog = "scooby";
alert($dog + " " + $dog + " doo");
以下を使用します。
alert(sprintf('%s %s doo', 'dog', 'dog'));
いいえ、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);