String.raw()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

La méthode statique String.raw() est une fonction d'étiquetage (tag function) pour les gabarits de chaînes de caractères (elle est semblable au préfixe r en Python ou au préfixe @ en C#). Cette fonction permet d'obtenir la chaîne brute pour un gabarit (les caractères spéciaux ne sont pas pris en compte mais retranscrits tels quels, les séquences d'échappement ne sont pas interprétées et les emplacements (ex. ${toto}) sont traités).

Exemple interactif

// Create a variable that uses a Windows
// path without escaping the backslashes:
const filePath = String.raw`C:\Development\profile\aboutme.html`;

console.log(`The file was uploaded from: ${filePath}`);
// Expected output: "The file was uploaded from: C:\Development\profile\aboutme.html"

Syntaxe

js
String.raw(callSite, ...substitutions);

String.raw`gabaritChaîne`;

Paramètres

callSite

Un site d'appel bien formé pour un gabarit (call site object) tel que {raw: "string"}.

...substitutions

Paramètre contenant les valeurs à substituer.

gabaritChaîne

Un gabarit de chaîne de caractères, éventuellement avec des substitutions (${...}).

Valeur de retour

La chaîne de caractères brute correspondant à un gabarit donné.

Exceptions

TypeError

Une exception TypeError est renvoyée si le premier argument n'est pas un objet bien formé.

Description

Dans la plupart des cas, String.raw() est utilisé avec des gabarits de chaînes de caractères. La première syntaxe, présentée ci-avant est rarement utilisée. En effet, le moteur JavaScript appellera cette forme avec les arguments appropriés, comme pour les fonctions d'étiquetage (tag).

La méthode String.raw() est la seule méthode d'étiquetage native pour les chaînes de caractères. Elle fonctionne comme la fonction par défaut pour les gabarits et permet d'effectuer des concaténations. Il est également possible d'implémenter cette méthode avec du code JavaScript.

Exemples

js
String.raw`Hi\n${2 + 3}!`;
// "Hi\n5!", le caractère après "Hi" n'est pas
// le caractère de nouvelle ligne
// "\" et "n" sont bien deux caractères distincts
// ici.

String.raw`Hi\u000A!`;
// "Hi\u000A!", de même ici. Les caractères
//  \, u, 0, 0, 0, A et 6 sont distincts.
// Tous les caractères d'échappement seront
// inefficaces. Des backslashes peuvent donc être
// présents dans la chaîne produite. Cela peut
// être vérifié avec la propriété .length de la
// chaîne.

let nom = "Bob";
String.raw`Hi\n${nom}!`;
// "Hi\nBob!", les remplacements sont effectués.

// Généralement, on n'appelle pas String.raw
// comme une fonction, mais c'est possible :
String.raw({ raw: "test" }, 0, 1, 2);
// "t0e1s2t"

Spécifications

Specification
ECMAScript® 2025 Language Specification
# sec-string.raw

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
raw

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi