Sie können Vorlagenliterale nutzen und diese Syntax verwenden:
`String text ${expression}`
Vorlagenliterale werden anstelle von doppelten oder einfachen Anführungszeichen durch das Back-Tick (``) (schwerwiegender Akzent) eingeschlossen.
Diese Funktion wurde in ES2015 (ES6) eingeführt.
Beispiel
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
Wie ordentlich ist das?
Bonus:
Es ermöglicht auch mehrzeilige Zeichenfolgen in Javascript, ohne zu maskieren, was sich hervorragend für Vorlagen eignet:
return `
<div class="${foo}">
...
</div>
`;
Browserunterstützung :
Da diese Syntax von älteren Browsern (meistens Internet Explorer) nicht unterstützt wird, möchten Sie möglicherweise Babel / Webpack verwenden, um Ihren Code in ES5 zu transpilieren und sicherzustellen, dass er überall ausgeführt wird.
Randnotiz:
Ab IE8 + können Sie die grundlegende Formatierung von Zeichenfolgen verwenden console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
"${foo}"
ist buchstäblich $ {foo}`${foo}`
ist das, was Sie tatsächlich wollenFifteen is ${a + b}.
); ändert sich nicht dynamisch. es zeigt immer, dass fünfzehn 15 ist.Vor Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge war dies in Javascript nicht möglich. Sie müssten auf Folgendes zurückgreifen:
quelle
Vor Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, Nr. Obwohl Sie sprintf für JavaScript versuchen könnten , um auf halbem Weg dorthin zu gelangen:
quelle
Nun, Sie könnten dies tun, aber es ist nicht besonders allgemein
Sie könnten leicht eine Funktion schreiben, die dies intelligent macht, wenn Sie es wirklich brauchen
quelle
Vollständige Antwort, gebrauchsfertig:
Rufen Sie an als
So hängen Sie es an String.prototype an:
Dann verwenden als:
quelle
Sie können diese Javascript-Funktion verwenden, um diese Art von Vorlagen zu erstellen. Es ist nicht erforderlich, eine gesamte Bibliothek einzuschließen.
Ausgabe :
"I would like to receive email updates from this store FOO BAR BAZ."
Die Verwendung einer Funktion als Argument für die Funktion String.replace () war Teil der ECMAScript v3-Spezifikation. Weitere Informationen finden Sie in dieser SO-Antwort .
quelle
Wenn Sie gerne CoffeeScript schreiben, können Sie Folgendes tun:
CoffeeScript ist eigentlich Javascript, aber mit einer viel besseren Syntax.
Eine Übersicht über CoffeeScript finden Sie in dieser Anleitung für Anfänger .
quelle
Wenn Sie versuchen, Interpolation für Mikrotemplating durchzuführen, mag ich Moustache.js für diesen Zweck.
quelle
Ich habe dieses npm-Paket stringinject https://www.npmjs.com/package/stringinject geschrieben , mit dem Sie Folgendes tun können
Dadurch werden {0} und {1} durch die Array-Elemente ersetzt und die folgende Zeichenfolge zurückgegeben
oder Sie können Platzhalter durch Objektschlüssel und Werte wie folgt ersetzen:
quelle
Ich würde das Back-Tick `` verwenden.
Aber wenn Sie nicht wissen,
name1
wann Sie erstellenmsg1
.Zum Beispiel, wenn
msg1
es von einer API stammt.Sie können verwenden:
Es wird durch
${name2}
seinen Wert ersetzt.quelle
Hier werden keine externen Bibliotheken erwähnt, aber Lodash hat
_.template()
:https://lodash.com/docs/4.17.10#template
Wenn Sie die Bibliothek bereits nutzen, lohnt es sich, sie zu überprüfen. Wenn Sie Lodash nicht verwenden, können Sie ab npm immer Methoden auswählen,
npm install lodash.template
um den Overhead zu reduzieren.Einfachste Form -
Es gibt auch eine Reihe von Konfigurationsoptionen -
Ich fand benutzerdefinierte Trennzeichen am interessantesten.
quelle
Erstellen Sie eine ähnliche Methode wie
String.format()
Javaverwenden
quelle
Friedenszitat von 2020:
quelle
Verwenden Sie einfach:
quelle
Uso:
quelle
var hello = "foo";
console.log (my_string, hallo)
quelle