Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

RegExp : propriété source

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La propriété d'accesseur source des instances de RegExp retourne une chaîne de caractères contenant le texte source de cette expression rationnelle, sans les deux barres obliques de chaque côté ni aucun des indicateurs.

Exemple interactif

const regex = /totoTruc/gi;

console.log(regex.source);
// Résultat attendu : "totoTruc"

console.log(new RegExp().source);
// Résultat attendu : "(?:)"

console.log(new RegExp("\n").source === "\\n");
// Résultat attendu : true (à partir d'ES5)
// En raison de l'échappement

Description

Conceptuellement, la propriété source est le texte compris entre les deux barres obliques dans le littéral d'expression rationnelle. Le langage exige que la chaîne de caractères retournée soit correctement échappée, de sorte que lorsque le source est concaténé avec une barre oblique de chaque côté, il forme un littéral d'expression rationnelle analysable. Par exemple, pour new RegExp("/"), le source est \\/, car s'il génère /, le littéral résultant devient ///, ce qui est un commentaire de ligne. De même, tous les terminateurs de ligne sont échappés, car les caractères de terminaison de ligne brisent le littéral d'expression rationnelle. Il n'y a pas d'exigence pour les autres caractères, tant que le résultat est analysable. Pour les expressions rationnelles vides, la chaîne de caractères (?:) est retournée.

Exemples

Utiliser source

js
const regex = /totoMachin/gi;

console.log(regex.source); // "totoMachin", ne contient pas /.../ et "gi".

Expressions rationnelles vides et échappement

js
new RegExp().source; // "(?:)"

new RegExp("\n").source === "\\n"; // true, à partir d'ES5

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-get-regexp.prototype.source

Compatibilité des navigateurs

Voir aussi