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
const regex = /totoMachin/gi;
console.log(regex.source); // "totoMachin", ne contient pas /.../ et "gi".
Expressions rationnelles vides et échappement
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
- La propriété
RegExp.prototype.flags