Ciągi wieloliniowe w JavaScript

Podczas programowania w JavaScript często natrafiamy na niemożność zrealizowania wielowierszowych ciągów znaków poprzez wprowadzenie ich w kilku liniach kodu. Chociaż zadanie w innych językach, takich jak PHP lub Ruby, nie stanowi problemu, w przypadku JavaScript można początkowo obejść tylko obejścia, o których zastosowaniu decyduje osobisty gust lub obsługa przeglądarki.


Oczywista próba

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

kończy się niepowodzeniem i parser narzeka na kilka rzeczy (w postaci nieoczekiwanego tokena ILLEGAL), ponieważ JavaScript (w przeciwieństwie do innych języków programowania, takich jak PHP) automatycznie wstawia średnik po końcu każdej linii:

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

Pierwsze rozwiązanie problemu polega na prostej konkatenacji ciągów za pomocą operatora \ n i +:

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

Jeśli wolisz mniej powolny i nieco ładniejszy wariant, dodaj ukośnik odwrotny na końcu każdego wiersza:

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

Alternatywnie możesz również użyć metody łączenia i ją pobrać:

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

Jeśli z drugiej strony twoje oczy rozświetlają się wyrażeniami regularnymi, użyj następującej składni (match () filtruje wartości między komentarzami):

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

Ważne: jeśli kod jest zminimalizowany, to rozwiązanie można zapomnieć (ponieważ komentarze są również usuwane).

Najładniejszy wariant udaje się z ECMA6 i pomocą ciągów szablonów:

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