Multi-line strenge i JavaScript

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.";

mislykkes, og parseren klager over flere ting (i form af uventet token ILLEGAL), fordi JavaScript (i modsætning til andre programmeringssprog såsom PHP) automatisk indsætter et semikolon efter afslutningen 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.";

Hvis du foretrækker en mindre langsom og lidt pænere variant, skal du tilføje et tilbageslag 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`;
Tilbage