Flera linjesträngar i JavaScript

Vid programmering med JavaScript snubblar man ofta över oförmågan att implementera strängar med flera rader genom att ange dem i flera rader i koden. Även om uppgiften på andra språk som PHP eller Ruby inte är ett problem, med JavaScript kan du initialt bara nöja dig med lösningar, vars användning bestäms av personlig smak eller webbläsarstöd.


Det uppenbara försöket

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

misslyckas och parsern klagar sedan på flera saker (i form av oväntat token ILLEGAL), eftersom JavaScript (i motsats till andra programmeringsspråk som PHP) automatiskt infogar ett semikolon efter slutet av varje rad:

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

En första lösning på problemet består av den enkla strängsammankopplingen genom \ n- och + -operatören:

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

Om du föredrar en mindre långsam och lite trevligare variant, lägg till en backslash i slutet av varje rad:

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

Alternativt kan du använda anslutningsmetoden och hämta den:

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

Om å andra sidan dina ögon lyser upp med reguljära uttryck, använd följande syntax (match () filtrerar värdena mellan kommentarerna):

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

Viktigt: Om koden är minifierad kan den här lösningen glömmas bort (eftersom kommentarerna också tas bort).

Den trevligaste varianten lyckas med ECMA6 och hjälp av mallsträngar:

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