String.raw în JavaScript

Șiruri de caractere ES2015 (ES6)

Template literal în care backslash-ul rămâne exact cum l-ai scris, fără secvențe speciale.

Sintaxă
String.raw`text ${expresie}`

Ce face String.raw

String.raw se pune în fața unui template literal. Expresiile ${ } sunt înlocuite normal, dar secvențele cu backslash (\n, \t, \d) rămân text, nu devin rând nou sau tab.

Este util pentru căi Windows și pentru expresii regulate scrise ca text, unde altfel ar trebui să dublezi fiecare backslash.

Ce returnează

Un șir de caractere.

Exemple

Exemplul 1: Cale Windows

Primul rând dublează fiecare backslash. Al doilea folosește String.raw. Al treilea arată ce se întâmplă fără niciuna: \D pierde backslash-ul, iar \n devine rând nou.

const an = 2026;

console.log(`C:\\Documente\\raport-${an}.pdf`);
console.log(String.raw`C:\Documente\raport-${an}.pdf`);
console.log(`C:\Documente\noiembrie`);

Rezultat

C:\Documente\raport-2026.pdf
C:\Documente\raport-2026.pdf
C:Documente
oiembrie

Exemplul 2: Expresie regulată din text

const model = new RegExp(String.raw`^\d{4}-\d{2}-\d{2}$`);

console.log(model.source);
console.log(model.test("2026-10-19"));

Rezultat

^\d{4}-\d{2}-\d{2}$
true

Greșeli frecvente

  • Apelezi String.raw("text") cu paranteze, ca pe o funcție obișnuită. Se folosește cu backtick-uri direct după nume: String.raw`text`.

Comenzi înrudite

  • template literals: Șiruri între backtick-uri (`) în care pui variabile și expresii direct în text.
  • RegExp (expresii regulate): Creează o expresie regulată: un model de text folosit pentru căutare, validare și înlocuire.