Când se programează cu JavaScript, de multe ori se împiedică de incapacitatea de a implementa șiruri multi-linie, introducându-le în mai multe linii din cod. În timp ce sarcina în alte limbi, cum ar fi PHP sau Ruby nu este o problemă, cu JavaScript puteți inițial să vă deplasați numai cu soluții alternative, a căror utilizare este decisă de gustul personal sau de suportul browserului.
Încercarea evidentă
var str = "Dies ist eine
mehrzeilige
Zeichenkette.";
eșuează și parserul se plânge de mai multe lucruri (sub formă de simbol neașteptat ILLEGAL) deoarece JavaScript (spre deosebire de alte limbaje de programare, cum ar fi PHP) introduce automat un punct și virgulă după sfârșitul fiecărei linii:
var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";
O primă soluție la problemă constă în concatenarea șirului simplu prin operatorul \ n și +:
var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";
Dacă preferați o variantă mai puțin lentă și puțin mai plăcută, adăugați o bară inversă la sfârșitul fiecărei linii:
var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";
Alternativ, puteți utiliza și metoda join și să o obțineți:
var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");
Dacă, pe de altă parte, ochii îți luminează cu expresii regulate, folosește următoarea sintaxă (match () filtrează valorile dintre comentarii):
var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
Important: Dacă codul este minimizat, această soluție poate fi uitată (deoarece și comentariile sunt eliminate).
Cea mai frumoasă variantă reușește cu ECMA6 și cu ajutorul șirurilor șablon:
var str = `Dies ist eine
mehrzeilige
Zeichenkette`;