196 votes

Comment faire une chaîne de caractères de plusieurs lignes dans node.js ?

Avec l'essor de node.js, les chaînes de caractères à plusieurs lignes deviennent de plus en plus nécessaires en JavaScript.

  1. Existe-t-il un moyen spécial de faire cela dans Node.JS, même si cela ne fonctionne pas dans les navigateurs ?
  2. Y a-t-il des plans ou au moins une demande de fonctionnalité pour faire cela que je puisse soutenir ?

Je sais déjà que vous pouvez utiliser \n\ à la fin de chaque ligne, ce n'est pas ce que je veux.

1 votes

Pourquoi diable auriez-vous besoin d'insérer des retours en ligne dure ? Rien dans le DOM ne supporte cela (à l'exception de "pre"), et tous les autres types de retour courants ne s'en soucient pas.

0 votes

Ainsi, je ne me retrouve pas avec des onglets à gauche sans retours à droite. J'aime avoir les deux ou aucun. Pour l'instant, j'utilise print( '<div>') pour imprimer mon HTML. Il n'a ni tabulations ni retours, ce qui est "soigné", mais il serait plus facile d'utiliser un script Perl. <<EOF..EOF ou un fichier JSP de style Java. Quoi qu'il en soit, j'ai besoin de pouvoir saisir des variables dans la chaîne multi-lignes lorsqu'elle arrive. Je m'en passerai pour l'instant.

9 votes

@jcolebrand : Node.JS n'est pas principalement concerné par la manipulation du DOM. C'est un environnement de développement d'applications complet. Voir nodejs.org

8voto

David Murdoch Points 28521

Jetez un coup d'œil à la mstring pour node.js.

Il s'agit d'un petit module simple qui vous permet d'avoir des chaînes de caractères à plusieurs lignes en JavaScript.

Fais juste ça :

var M = require('mstring')

var mystring = M(function(){/*** Ontario Mining and Forestry Group ***/})

pour obtenir

mystring === "Ontario\nMining and\nForestry\nGroup"

Et c'est à peu près tout.

Comment ça marche
En Node.js, vous pouvez appeler la fonction .toString d'une fonction, et vous obtiendrez le code source de la définition de la fonction, y compris les commentaires éventuels. Une expression régulière saisit le contenu du commentaire.

Oui, c'est un hack. Inspiré par un commentaire de Dominic Tarr .


note : Le module (à partir de 2012/13/11) n'autorise pas les espaces avant la clôture ***/ donc vous devrez le pirater vous-même.

1 votes

Ou utilisez votre branche de mstring qui contient la correction des espaces blancs. Merci ! github.com/davidmurdoch/mstring

4voto

Ricardo Tomasi Points 13398

Jetez un coup d'oeil à CoffeeScript : http://coffeescript.org

Il prend en charge les chaînes de caractères à plusieurs lignes, l'interpolation, la compréhension des tableaux et bien d'autres choses encore.

1voto

Simon D Points 1453

Si vous utilisez io.js, il prend en charge les chaînes de caractères à plusieurs lignes telles qu'elles existent dans ECMAScript 6.

var a =
`this is
a multi-line
string`;

Voir "Nouvelles méthodes de chaînes" à l'adresse http://davidwalsh.name/es6-io pour plus de détails et "chaînes de modèles" à http://kangax.github.io/compat-table/es6/ pour la compatibilité du suivi.

0voto

Tim Caswell Points 136

Vanilla Javascipt ne supporte pas les chaînes de caractères de plusieurs lignes. Les préprocesseurs de langage s'avèrent être réalisables de nos jours.

CoffeeScript, le plus populaire d'entre eux, possède cette fonctionnalité, mais il n'est pas minimal, c'est un nouveau langage. Le compilateur traceur de Google ajoute de nouvelles fonctionnalités au langage en tant que superset, mais je ne pense pas que les chaînes multi-lignes fassent partie des fonctionnalités ajoutées.

Je cherche à faire un superset minimal de javascript qui supporte les chaînes multi-lignes et quelques autres fonctionnalités. J'ai commencé ce petit langage il y a quelques temps avant d'écrire le compilateur initial pour coffeescript. Je prévois de le terminer cet été.

Si les pré-compilateurs ne sont pas une option, il y a aussi le hack de la balise script où vous stockez vos données multi-lignes dans une balise script dans le html, mais lui donnez un type personnalisé afin qu'elle ne soit pas évaluée. Ensuite, plus tard, en utilisant javascript, vous pouvez extraire le contenu de la balise script.

De même, si vous mettez un point à la fin d'une ligne de code source, la nouvelle ligne sera ignorée comme si elle n'existait pas. Si vous voulez la nouvelle ligne, alors vous devez terminer la ligne avec " \n\ ".

Prograide.com

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.

Powered by:

X