Multliniaj kordoj en Ĝavoskripto

Programante per Ĝavoskripto, oni ofte stumblas pro la nekapablo efektivigi plurliniajn ĉenojn enigante ilin en multoblajn liniojn en la kodo. Dum la tasko en aliaj lingvoj kiel PHP aŭ Ruby ne estas problemo, per Ĝavoskripto vi povas unue moviĝi nur per solvoj, kies uzon decidas persona gusto aŭ retumila subteno.


La evidenta provo

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

malsukcesas kaj la analizilo plendas pri pluraj aferoj (en la formo de neatendita ĵetono MALLEGA) ĉar Ĝavoskripto (kontraste al aliaj programlingvoj kiel PHP) aŭtomate enmetas punktokomon post la fino de ĉiu linio:

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

Unua solvo al la problemo konsistas el la simpla ĉena interligo per la operatoro \ n kaj +:

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

Se vi preferas malpli malrapidan kaj iomete pli agrablan varianton, aldonu retroŝparon ĉe la fino de ĉiu linio:

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

Alternative vi povas uzi la aliĝan metodon kaj akiri ĝin:

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

Se aliflanke viaj okuloj lumas per regulaj esprimoj, uzu la jenan sintakson (match () filtras la valorojn inter la komentoj):

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

Grava: Se la kodo estas malgrandigita, ĉi tiu solvo povas esti forgesita (ĉar la komentoj ankaŭ estas forigitaj).

La plej bela varianto sukcesas per ECMA6 kaj la helpo de ŝablonaj ĉenoj:

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