La propriété source renvoie une chaîne de caractères qui contient le texte du motif à rechercher (pattern), sans les barres obliques (slashes). C'est une propriété en lecture seule liée à l'instance. source ne contient aucun des options ou drapeaux (flags) (tels que "g", "i" ou "m") de l'expression rationnelle.

Attributs de RegExp.prototype.source
Écrivable Non
Énumérable Non
Configurable Oui

Exemples

Utiliser source

var regex = /totoMachin/ig;

console.log(regex.source); // "totoMachin"

Les expressions ratonnelles vides et l'échappement

À partir d'ECMAScript 5, la propriété source ne renvoie plus une chaîne vide pour les expressions rationnelles vides. Elle renvoie la chaîne "(?:)". De plus, les fins de lignes (telles que "\n") sont désormais échappées.

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

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

Spécifications

Spécification État Commentaires
ECMAScript 3rd Edition (ECMA-262) Standard Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : source est une propriété de l'instance de RegExp, ce n'est pas une propriété de l'objet RegExp.
ECMAScript 5.1 (ECMA-262)
La définition de 'RegExp.prototype.source' dans cette spécification.
Standard source renvoie désormais "(?:)" (et non "") pour les expressions vides. La définition du comportement pour les échappements a été ajoutée.
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'RegExp.prototype.source' dans cette spécification.
Standard source est désormais un accesseur lié au prototype plutôt qu'une propriété directement rattachée à l'instance.
ECMAScript Latest Draft (ECMA-262)
La définition de 'RegExp.prototype.source' dans cette spécification.
Projet  

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Oui Oui Oui Oui Oui Oui
Prototype accessor property (ES2015) Oui ?41 ? Oui Oui
Escaping ? ?38 ? ? ?
"(?:)" for empty regexps Oui ?38 ? ? Oui
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Oui Oui Oui Oui Oui Oui ?
Prototype accessor property (ES2015) Oui Oui ?41 Oui Oui ?
Escaping ? ? ?38 ? ? ?
"(?:)" for empty regexps ? ? ?38 ? ? ?

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, Goofy
 Dernière mise à jour par : SphinxKnight,