s = 'bonjour %s, comment vas-tu' % (mon_nom)
C'est ainsi que vous le faites en python. Comment pouvez-vous le faire en javascript/node.js ?
s = 'bonjour %s, comment vas-tu' % (mon_nom)
C'est ainsi que vous le faites en python. Comment pouvez-vous le faire en javascript/node.js ?
Avec Node.js v4
, vous pouvez utiliser les chaînes de caractères de modèles d'ES6
var my_name = 'John';
var s = `hello ${my_name}, how are you doing`;
console.log(s); // prints hello John, how are you doing
Vous devez envelopper la chaîne de caractères avec des `
(accent grave) au lieu de '
(apostrophe)
Plus 1 parce que nous sommes en 2017 et ES6 est pratiquement la norme dans le monde de Node.
C'est maintenant (2017) la réponse correcte. Notez que vous aurez besoin de Babel dans votre chaîne d'outils pour prendre en charge les anciens navigateurs.
J'ai suggéré aux développeurs node.js qu'il serait vraiment utile de faire comprendre sur des pages telles que nodejs.org/api/readline.html que c'est un backtick. Il y avait un problème à ce sujet ici : github.com/nodejs/docs/issues/55
Note, à partir de 2015, utilisez simplement des backticks pour le formatage de modèle
let a = `hello ${name}` // NOTE!!!!!!!! ` not ' or "
Notez qu'il s'agit d'un backtick, pas d'une citation.
Si vous voulez quelque chose de similaire, vous pourriez créer une fonction :
function parse(str) {
var args = [].slice.call(arguments, 1),
i = 0;
return str.replace(/%s/g, () => args[i++]);
}
Utilisation :
s = parse('hello %s, how are you doing', my_name);
Il ne s'agit que d'un exemple simple et ne tient pas compte des différents types de données (comme %i
, etc) ou de l'échappement de %s
. Mais j'espère que cela vous donne une idée. Je suis assez sûr qu'il existe également des bibliothèques qui proposent une fonction comme celle-ci.
util.format le fait.
Cela fera partie de v0.5.3 et peut être utilisé comme ceci :
var uri = util.format('http%s://%s%s',
(useSSL?'s':''), apiBase, path||'/');
Dès node.js
>4.0
, il devient de plus en plus compatible avec la norme ES6, où la manipulation de chaînes s'est fortement améliorée.
La réponse à la question originale peut être aussi simple que :
var s = `hello ${my_name}, comment ça va`;
// note : tilde ` au lieu de guillemet simple '
Lorsque la chaîne peut se propager sur plusieurs lignes, les modèles ou les processus HTML/XML deviennent assez faciles. Plus de détails et plus de capacités à ce sujet : Les littéraux de modèle sont des littéraux de chaîne sur mozilla.org.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
Je suis sûr qu'il y avait un épouvantail es-next quelque part pour faire
var s = 'hello ${my_name}, how are you doing';
1 votes
J'utilise comme l'a dit Raynos: `const poem = "La rivière noire"; const author = "Joseph Troll"; const favePoem = `Mon poème préféré est ${poem} de ${author}\`; Ou vous pouvez utiliser: console.log('%s est %d.', 'Onze', 11);
3 votes
La modélisation normale est disponible depuis des années maintenant MAIS VOUS DEVEZ UTILISER LES BACKTICKS stackoverflow.com/a/37245773/294884 stackoverflow.com/a/37245773/294884 stackoverflow.com/a/37245773/294884 stackoverflow.com/a/37245773/294884
1 votes
Si vous êtes bloqué avec le formatage
sprintf
, vous pouvez utiliserutil.format('hello %s, how are you doing', my_name)
qui fonctionne toujours en v14.15.4! voir la documentation nodejs.org/docs/latest/api/…