RegExp.prototype.source

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

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
sourceChrome Support complet 1Edge Support complet 12Firefox Support complet 1IE Support complet 4Opera Support complet OuiSafari Support complet 1WebView Android Support complet 1Chrome Android Support complet 18Firefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet 1Samsung Internet Android Support complet 1.0nodejs Support complet Oui
"(?:)" for empty regexpsChrome Support complet 6Edge Support complet 12Firefox Support complet 38IE Aucun support NonOpera Support complet 15Safari Support complet 5WebView Android Support complet ≤37Chrome Android Support complet 18Firefox Android Support complet 38Opera Android Support complet 14Safari iOS Support complet 4.2Samsung Internet Android Support complet 1.0nodejs ?
EscapingChrome Support complet 73Edge Support complet 12Firefox Support complet 38IE Support complet 10Opera Support complet 60Safari Support complet 6WebView Android Support complet 73Chrome Android Support complet 73Firefox Android Support complet 38Opera Android Support complet 52Safari iOS Support complet 6Samsung Internet Android Aucun support Nonnodejs ?
Prototype accessor property (ES2015)Chrome Support complet 48Edge Support complet 12Firefox Support complet 41IE Support complet 4Opera Support complet 35Safari Support complet 1.3WebView Android Support complet 48Chrome Android Support complet 48Firefox Android Support complet 41Opera Android Support complet 35Safari iOS Support complet 1Samsung Internet Android Support complet 5.0nodejs Support complet Oui

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue

Voir aussi