Többsoros karakterláncok a JavaScript-ben

A JavaScript-sel történő programozás során gyakran megbotlik a többsoros karakterláncok megvalósításának képtelenségében azáltal, hogy a kód több sorába is beírja őket. Míg a más nyelveken, például a PHP-ben vagy a Rubyban szereplő feladat nem jelent problémát, a JavaScript-el kezdetben csak megkerülő megoldásokkal lehet megkerülni, amelyek használatát a személyes ízlés vagy a böngésző támogatása dönti el.


A nyilvánvaló kísérlet

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

nem sikerül, és az elemző panaszkodik számos dologra (váratlan token ILLEGAL formájában), mert a JavaScript (más programozási nyelvekkel, például a PHP-vel ellentétben) automatikusan pontosvesszőt illeszt az egyes sorok vége után:

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

A probléma első megoldása a \ n és + operátorral történő egyszerű karakterlánc összefűzésből áll:

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

Ha kevésbé lassú és kissé szebb változatot kedvel, akkor minden sor végén írjon visszajelet:

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

Alternatív megoldásként használhatja a csatlakozási módszert is, és megszerezheti:

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

Ha viszont a szemed szabályos kifejezésekkel világít, használd a következő szintaxist (a match () kiszűri az értékeket a megjegyzések között):

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

Fontos: Ha a kód tömörítve van, akkor ezt a megoldást el lehet felejteni (mivel a megjegyzéseket is eltávolítjuk).

A legszebb változat az ECMA6 és a sablon húrok segítségével sikerül:

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