Możesz skorzystać z literałów szablonów i użyć tej składni:
`String text ${expression}`
Literały szablonów są ujęte w tykanie (``) (poważny akcent) zamiast podwójnych lub pojedynczych cudzysłowów.
Ta funkcja została wprowadzona w ES2015 (ES6).
Przykład
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
Jak to jest miłe?
Premia:
Pozwala również na wieloliniowe ciągi w javascript bez zmiany znaczenia, co jest idealne dla szablonów:
return `
<div class="${foo}">
...
</div>
`;
Obsługa przeglądarki :
Ponieważ ta składnia nie jest obsługiwana przez starsze przeglądarki (głównie Internet Explorer), możesz użyć Babel / Webpack do transponowania swojego kodu do ES5, aby mieć pewność, że będzie działał wszędzie.
Dygresja:
Począwszy od IE8 +, możesz używać podstawowego formatowania ciągów wewnątrz console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
"${foo}"
jest dosłownie {foo}`${foo}`
jest tym, czego naprawdę chceszFifteen is ${a + b}.
); nie zmienia się dynamicznie. zawsze pokazuje, że Piętnastka ma 15 lat.Przed Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, nie, nie było to możliwe w javascript. Musisz uciekać się do:
źródło
Przed Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, no. Chociaż możesz spróbować sprintf dla JavaScript, aby dostać się tam w połowie drogi:
źródło
cóż, możesz to zrobić, ale nie jest to szczególnie ogólne
Możesz z łatwością napisać funkcję, która robi to inteligentnie, jeśli naprawdę tego potrzebujesz
źródło
Pełna odpowiedź, gotowa do użycia:
Zadzwoń jako
Aby dołączyć go do String.prototype:
Następnie użyj jako:
źródło
Możesz użyć tej funkcji javascript do tego rodzaju szablonów. Nie trzeba dołączać całej biblioteki.
Wyjście :
"I would like to receive email updates from this store FOO BAR BAZ."
Użycie funkcji jako argumentu funkcji String.replace () było częścią specyfikacji ECMAScript v3. Zobacz tę odpowiedź SO, aby uzyskać więcej informacji.
źródło
Jeśli lubisz pisać CoffeeScript, możesz:
CoffeeScript faktycznie jest javascript, ale ze znacznie lepszą składnią.
Przegląd CoffeeScript znajduje się w tym podręczniku dla początkujących .
źródło
Jeśli próbujesz wykonać interpolację do mikrotemplowania, w tym celu podoba mi się Mustache.js .
źródło
Napisałem ten pakiet npm stringinject https://www.npmjs.com/package/stringinject, który pozwala wykonać następujące czynności
który zastąpi {0} i {1} elementami tablicy i zwróci następujący ciąg
lub możesz zastąpić symbole zastępcze kluczami i wartościami obiektów takimi jak:
źródło
Użyłbym zaznaczenia wstecznego ``.
Ale jeśli nie wiesz,
name1
kiedy tworzyszmsg1
.Na przykład, jeśli
msg1
pochodzi z interfejsu API.Możesz użyć :
Zastąpi
${name2}
go jego wartością.źródło
Nie widzę tu żadnych zewnętrznych bibliotek, ale Lodash ma
_.template()
,https://lodash.com/docs/4.17.10#template
Jeśli już korzystasz z biblioteki, warto to sprawdzić, a jeśli nie korzystasz z Lodash, zawsze możesz wybrać metody z npm,
npm install lodash.template
aby zmniejszyć koszty ogólne.Najprostsza forma -
Istnieje również wiele opcji konfiguracji -
Najbardziej interesujące są niestandardowe ograniczniki.
źródło
Utwórz metodę podobną do
String.format()
Javaposługiwać się
źródło
Cytat pokojowy 2020:
źródło
Po prostu użyj:
źródło
Uso:
źródło
var hello = "foo";
console.log (my_string, cześć)
źródło