Chaînes multilignes en JavaScript

Lors de la programmation avec JavaScript, on tombe souvent sur l'incapacité d'implémenter des chaînes multilignes en les saisissant sur plusieurs lignes dans le code. Bien que la tâche dans d'autres langages tels que PHP ou Ruby ne pose pas de problème, avec JavaScript, vous ne pouvez initialement vous contenter que de solutions de contournement, dont l'utilisation est décidée par les goûts personnels ou le support du navigateur.


La tentative évidente

var str = "Dies ist eine
mehrzeilige
Zeichenkette.";

échoue et l'analyseur se plaint alors de plusieurs choses (sous forme de jeton inattendu ILLEGAL), car JavaScript (contrairement à d'autres langages de programmation comme PHP) insère automatiquement un point-virgule après la fin de chaque ligne:

var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";

Une première solution au problème consiste en la simple concaténation de chaînes via l'opérateur \ n et +:

var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";

Si vous préférez une variante moins lente et légèrement plus agréable, ajoutez une barre oblique inverse à la fin de chaque ligne:

var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";

Vous pouvez également utiliser la méthode join et l'obtenir:

var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");

Si au contraire vos yeux s'illuminent avec des expressions régulières, utilisez la syntaxe suivante (match () filtre les valeurs entre les commentaires):

var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

Important: Si le code est minifié, cette solution peut être oubliée (puisque les commentaires sont également supprimés).

La plus belle variante réussit avec ECMA6 et l'aide de chaînes de modèle:

var str = `Dies ist eine
mehrzeilige
Zeichenkette`;
Retour