Quando si programma con JavaScript, spesso ci si imbatte nell'incapacità di implementare stringhe multilinea inserendole in più righe nel codice. Sebbene l'attività in altri linguaggi come PHP o Ruby non sia un problema, con JavaScript puoi inizialmente aggirare solo soluzioni alternative, il cui utilizzo è deciso dal gusto personale o dal supporto del browser.
L'ovvio tentativo
var str = "Dies ist eine
mehrzeilige
Zeichenkette.";
fallisce e il parser si lamenta di diverse cose (sotto forma di token imprevisto ILLEGALE) perché JavaScript (a differenza di altri linguaggi di programmazione come PHP) inserisce automaticamente un punto e virgola dopo la fine di ogni riga:
var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";
Una prima soluzione al problema consiste nella semplice concatenazione di stringhe tramite gli operatori \ ne +:
var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";
Se preferisci una variante meno lenta e leggermente più bella, aggiungi una barra rovesciata alla fine di ogni riga:
var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";
In alternativa, puoi anche utilizzare il metodo di unione e ottenerlo:
var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");
Se, d'altra parte, i tuoi occhi si illuminano di espressioni regolari, usa la seguente sintassi (match () filtra i valori tra i commenti):
var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
Importante: se il codice viene minimizzato, questa soluzione può essere dimenticata (poiché vengono rimossi anche i commenti).
La variante più simpatica riesce con ECMA6 e l'aiuto delle stringhe di template:
var str = `Dies ist eine
mehrzeilige
Zeichenkette`;