Ved programmering med JavaScript snubler man ofte over manglende evne til at realisere streng med flere linjer ved også at indtaste dem i flere linjer i koden. Mens opgaven på andre sprog som PHP eller Ruby ikke er et problem, med JavaScript kan du oprindeligt kun komme rundt med løsninger, hvis brug bestemmes af personlig smag eller browsersupport.
Det åbenlyse forsøg
var str = "Dies ist eine
mehrzeilige
Zeichenkette.";
Det fejler, og parseren klager derefter over flere ting (i form af en uventet token ILLEGAL), fordi JavaScript (i modsætning til andre programmeringssprog som PHP) automatisk indsætter et semikolon efter slutningen af hver linje.:
var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";
En første løsning på problemet består i den enkle strengkombination gennem \ n- og + -operatoren:
var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";
For en hurtigere og noget pænere løsning, tilføj et omvendt skråstreg i slutningen af hver linje.:
var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";
Alternativt kan du også bruge tilslutningsmetoden og hente den:
var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");
Hvis derimod dine øjne lyser op med regelmæssige udtryk, skal du bruge følgende syntaks (match () filtrerer værdierne mellem kommentarerne):
var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
Vigtigt: Hvis koden er minificeret, kan denne løsning glemmes (da kommentarerne også fjernes).
Den bedste variant lykkes med ECMA6 og hjælp fra skabelonstrenge:
var str = `Dies ist eine
mehrzeilige
Zeichenkette`;