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`;