Vous pouvez profiter des modèles de littéraux et utiliser cette syntaxe:
`String text ${expression}`
Les littéraux de modèle sont entourés d' une coche arrière (``) (accent grave) au lieu de guillemets doubles ou simples.
Cette fonctionnalité a été introduite dans ES2015 (ES6).
Exemple
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
Est-ce que c'est bien?
Prime:
Il permet également des chaînes de plusieurs lignes en javascript sans s'échapper, ce qui est idéal pour les modèles:
return `
<div class="${foo}">
...
</div>
`;
Prise en charge du navigateur :
Comme cette syntaxe n'est pas prise en charge par les navigateurs plus anciens (principalement Internet Explorer), vous souhaiterez peut-être utiliser Babel / Webpack pour transpiler votre code dans ES5 pour vous assurer qu'il s'exécutera partout.
Note latérale:
À partir d'IE8 +, vous pouvez utiliser le formatage de chaîne de base à l'intérieur console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
"${foo}"
est littéralement $ {foo}`${foo}`
est ce que vous voulez réellementFifteen is ${a + b}.
); ne change pas dynamiquement. il montre toujours que Fifteen a 15 ans.Avant Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, non, cela n'était pas possible en javascript. Vous devrez recourir à:
la source
Avant Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, non. Bien que vous puissiez essayer sprintf pour JavaScript pour arriver à mi-chemin:
la source
vous pouvez le faire, mais ce n'est pas général
Vous pouvez facilement écrire une fonction qui le fait intelligemment si vous en avez vraiment besoin
la source
Réponse complète, prête à l'emploi:
Appelez en tant que
Pour l'attacher à String.prototype:
Ensuite, utilisez comme:
la source
Vous pouvez utiliser cette fonction javascript pour effectuer ce type de modèle. Pas besoin d'inclure une bibliothèque entière.
Sortie :
"I would like to receive email updates from this store FOO BAR BAZ."
L'utilisation d'une fonction comme argument de la fonction String.replace () faisait partie de la spécification ECMAScript v3. Voir cette réponse SO pour plus de détails.
la source
Si vous aimez écrire CoffeeScript, vous pouvez faire:
CoffeeScript EST en fait javascript, mais avec une bien meilleure syntaxe.
Pour un aperçu de CoffeeScript, consultez ce guide du débutant .
la source
Si vous essayez de faire une interpolation pour le microtemplage, j'aime Moustache.js à cet effet.
la source
J'ai écrit ce package npm stringinject https://www.npmjs.com/package/stringinject qui vous permet de faire ce qui suit
qui remplacera les {0} et {1} par les éléments du tableau et renverra la chaîne suivante
ou vous pouvez remplacer les espaces réservés par des clés d'objet et des valeurs comme ceci:
la source
J'utiliserais le back-tick ''.
Mais si vous ne savez pas
name1
quand vous créezmsg1
.Par exemple si elle
msg1
provient d'une API.Vous pouvez utiliser :
Il remplacera
${name2}
par sa valeur.la source
Ne voyez aucune bibliothèque externe mentionnée ici, mais Lodash a
_.template()
,https://lodash.com/docs/4.17.10#template
Si vous utilisez déjà la bibliothèque, cela vaut la peine de vérifier, et si vous n'utilisez pas Lodash, vous pouvez toujours choisir les méthodes de npm
npm install lodash.template
afin de réduire les frais généraux.Forme la plus simple -
Il y a aussi un tas d'options de configuration -
J'ai trouvé les délimiteurs personnalisés les plus intéressants.
la source
Créer une méthode similaire à celle
String.format()
de Javautilisation
la source
Citation de paix de 2020:
la source
Utilisez simplement:
la source
Uso:
la source
var hello = "foo";
console.log (my_string, bonjour)
la source