From 844f5103992238c0c23203286dad16a466e89c97 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:09 +0200 Subject: move *.html to *.md --- .../global_objects/regexp/@@match/index.html | 116 ---------- .../global_objects/regexp/@@match/index.md | 116 ++++++++++ .../global_objects/regexp/@@matchall/index.html | 106 --------- .../global_objects/regexp/@@matchall/index.md | 106 +++++++++ .../global_objects/regexp/@@replace/index.html | 121 ----------- .../global_objects/regexp/@@replace/index.md | 121 +++++++++++ .../global_objects/regexp/@@search/index.html | 115 ---------- .../global_objects/regexp/@@search/index.md | 115 ++++++++++ .../global_objects/regexp/@@species/index.html | 74 ------- .../global_objects/regexp/@@species/index.md | 74 +++++++ .../global_objects/regexp/@@split/index.html | 115 ---------- .../global_objects/regexp/@@split/index.md | 115 ++++++++++ .../global_objects/regexp/compile/index.html | 86 -------- .../global_objects/regexp/compile/index.md | 86 ++++++++ .../global_objects/regexp/dotall/index.html | 49 ----- .../global_objects/regexp/dotall/index.md | 49 +++++ .../global_objects/regexp/exec/index.html | 199 ----------------- .../reference/global_objects/regexp/exec/index.md | 199 +++++++++++++++++ .../global_objects/regexp/flags/index.html | 79 ------- .../reference/global_objects/regexp/flags/index.md | 79 +++++++ .../global_objects/regexp/global/index.html | 89 -------- .../global_objects/regexp/global/index.md | 89 ++++++++ .../global_objects/regexp/ignorecase/index.html | 82 ------- .../global_objects/regexp/ignorecase/index.md | 82 +++++++ .../reference/global_objects/regexp/index.html | 240 --------------------- .../reference/global_objects/regexp/index.md | 240 +++++++++++++++++++++ .../global_objects/regexp/input/index.html | 58 ----- .../reference/global_objects/regexp/input/index.md | 58 +++++ .../global_objects/regexp/lastindex/index.html | 103 --------- .../global_objects/regexp/lastindex/index.md | 103 +++++++++ .../global_objects/regexp/lastmatch/index.html | 57 ----- .../global_objects/regexp/lastmatch/index.md | 57 +++++ .../global_objects/regexp/lastparen/index.html | 56 ----- .../global_objects/regexp/lastparen/index.md | 56 +++++ .../global_objects/regexp/leftcontext/index.html | 55 ----- .../global_objects/regexp/leftcontext/index.md | 55 +++++ .../global_objects/regexp/multiline/index.html | 86 -------- .../global_objects/regexp/multiline/index.md | 86 ++++++++ .../reference/global_objects/regexp/n/index.html | 67 ------ .../reference/global_objects/regexp/n/index.md | 67 ++++++ .../global_objects/regexp/rightcontext/index.html | 56 ----- .../global_objects/regexp/rightcontext/index.md | 56 +++++ .../global_objects/regexp/source/index.html | 81 ------- .../global_objects/regexp/source/index.md | 81 +++++++ .../global_objects/regexp/sticky/index.html | 94 -------- .../global_objects/regexp/sticky/index.md | 94 ++++++++ .../global_objects/regexp/test/index.html | 135 ------------ .../reference/global_objects/regexp/test/index.md | 135 ++++++++++++ .../global_objects/regexp/tosource/index.html | 56 ----- .../global_objects/regexp/tosource/index.md | 56 +++++ .../global_objects/regexp/tostring/index.html | 93 -------- .../global_objects/regexp/tostring/index.md | 93 ++++++++ .../global_objects/regexp/unicode/index.html | 73 ------- .../global_objects/regexp/unicode/index.md | 73 +++++++ 54 files changed, 2541 insertions(+), 2541 deletions(-) delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@match/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@match/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@search/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@species/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@species/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@split/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/compile/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/compile/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/dotall/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/dotall/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/exec/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/exec/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/flags/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/flags/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/global/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/global/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/input/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/input/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/multiline/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/multiline/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/n/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/n/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/source/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/source/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/sticky/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/test/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/test/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/tosource/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/tosource/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/tostring/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/tostring/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/regexp/unicode/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/unicode/index.md (limited to 'files/fr/web/javascript/reference/global_objects/regexp') diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.html deleted file mode 100644 index 9d3c824406..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.html +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: RegExp.prototype[@@match]() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@match -tags: - - Expressions rationnelles - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@match -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@match ---- -
{{JSRef}}
- -

La méthode [@@match]() permet de récupérer les correspondances obtenues lorsqu'on teste une chaîne de caractères par rapport à une expression rationnelle (regexp).

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@match.html")}}
- -

Syntaxe

- -
regexp[Symbol.match](str)
- -

Paramètres

- -
-
str
-
La chaîne de caractères ({{jsxref("String")}}) sur laquelle on veut chercher des correspondances.
-
- -

Valeur de retour

- -

Un tableau ({{jsxref("Array")}}) qui contient les résultats des correspondances et les groupes capturés grâce aux parenthèse. S'il n'y a aucune correspondance, ce sera {{jsxref("null")}}.

- -

Description

- -

Cette méthode est appelée de façon interne lorsqu'on utilise {{jsxref("String.prototype.match()")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

- -
'abc'.match(/a/);
-
-/a/[Symbol.match]('abc');
- -

Cette méthode existe afin de permettre d'adapter le comportement de la recherche des correspondances pour les sous-classes de RegExp.

- -

Exemples

- -

Appel direct

- -

Cette méthode peut être utilisée comme {{jsxref("String.prototype.match()")}} mais avec un objet this différent et un ordre des paramètres également différent.

- -
var re = /[0-9]+/g;
-var str = '2016-01-02';
-var résultat = re[Symbol.match](str);
-console.log(résultat);  // ["2016", "01", "02"]
-
- -

Utilisation de @@match avec une sous-classe

- -

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@match]() afin de modifier le comportement.

- -
class MaRegExp extends RegExp {
-  [Symbol.match](str) {
-    var résultat = RegExp.prototype[Symbol.match].call(this, str);
-    if (!résultat) return null;
-    return {
-      group(n) {
-        return résultat[n];
-      }
-    };
-  }
-}
-
-var re = new MaRegExp('([0-9]+)-([0-9]+)-([0-9]+)');
-var str = '2016-01-02';
-var résultat = str.match(re); // String.prototype.match appelle re[@@match].
-console.log(résultat.group(1)); // 2016
-console.log(résultat.group(2)); // 01
-console.log(résultat.group(3)); // 02
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@match', 'RegExp.prototype[@@match]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@match', 'RegExp.prototype[@@match]')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@match")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.md new file mode 100644 index 0000000000..9d3c824406 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@match/index.md @@ -0,0 +1,116 @@ +--- +title: RegExp.prototype[@@match]() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@match +tags: + - Expressions rationnelles + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@match +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@match +--- +
{{JSRef}}
+ +

La méthode [@@match]() permet de récupérer les correspondances obtenues lorsqu'on teste une chaîne de caractères par rapport à une expression rationnelle (regexp).

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@match.html")}}
+ +

Syntaxe

+ +
regexp[Symbol.match](str)
+ +

Paramètres

+ +
+
str
+
La chaîne de caractères ({{jsxref("String")}}) sur laquelle on veut chercher des correspondances.
+
+ +

Valeur de retour

+ +

Un tableau ({{jsxref("Array")}}) qui contient les résultats des correspondances et les groupes capturés grâce aux parenthèse. S'il n'y a aucune correspondance, ce sera {{jsxref("null")}}.

+ +

Description

+ +

Cette méthode est appelée de façon interne lorsqu'on utilise {{jsxref("String.prototype.match()")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

+ +
'abc'.match(/a/);
+
+/a/[Symbol.match]('abc');
+ +

Cette méthode existe afin de permettre d'adapter le comportement de la recherche des correspondances pour les sous-classes de RegExp.

+ +

Exemples

+ +

Appel direct

+ +

Cette méthode peut être utilisée comme {{jsxref("String.prototype.match()")}} mais avec un objet this différent et un ordre des paramètres également différent.

+ +
var re = /[0-9]+/g;
+var str = '2016-01-02';
+var résultat = re[Symbol.match](str);
+console.log(résultat);  // ["2016", "01", "02"]
+
+ +

Utilisation de @@match avec une sous-classe

+ +

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@match]() afin de modifier le comportement.

+ +
class MaRegExp extends RegExp {
+  [Symbol.match](str) {
+    var résultat = RegExp.prototype[Symbol.match].call(this, str);
+    if (!résultat) return null;
+    return {
+      group(n) {
+        return résultat[n];
+      }
+    };
+  }
+}
+
+var re = new MaRegExp('([0-9]+)-([0-9]+)-([0-9]+)');
+var str = '2016-01-02';
+var résultat = str.match(re); // String.prototype.match appelle re[@@match].
+console.log(résultat.group(1)); // 2016
+console.log(résultat.group(2)); // 01
+console.log(résultat.group(3)); // 02
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@match', 'RegExp.prototype[@@match]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@match', 'RegExp.prototype[@@match]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@match")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.html deleted file mode 100644 index 303390a68c..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.html +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: RegExp.prototype[@@matchAll]() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll -tags: - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@matchAll ---- -

{{JSRef}}

- -

La méthode [@@matchAll] renvoie l'ensemble des correspondances d'une expression rationnelle sur une chaîne de caractères.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@matchall.html")}}
- -

Syntaxe

- -
regexp[Symbol.matchAll](str)
- -

Paramètres

- -
-
str
-
Une chaîne de caractères ({{jsxref("String")}}) dont on souhaite trouver les correspondances.
-
- -

Valeur de retour

- -

Un itérateur.

- -

Description

- -

Cette méthode est appelée, en interne, par le moteur JavaScript, pendant l'exécution {{jsxref("String.prototype.matchAll()")}}. Les deux lignes qui suivent renverront donc le même résultat.

- -
'abc'.matchAll(/a/);
-
-/a/[Symbol.matchAll]('abc');
- -

Cette méthode existe afin de personnaliser le comportement des correspondances pour les sous-classes de RegExp.

- -

Exemples

- -

Appel direct

- -

Cette méthode peut être utilisée de façon semblable à {{jsxref("String.prototype.matchAll()")}} mais l'objet this et l'ordre des arguments seront différents.

- -
var re = /[0-9]+/g;
-var str = '2016-01-02';
-var resultat = re[Symbol.matchAll](str);
-
-console.log(Array.from(resultat, x => x[0]));
-// ["2016", "01", "02"]
-
- -

Utiliser @@matchAll dans une sous-classe

- -

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@matchAll]() afin de modifier le comportement par défaut (par exemple pour renvoyer un tableau ({{jsxref("Array")}}) plutôt qu'un itérateur).

- -
class MaRegExp extends RegExp {
-  [Symbol.matchAll](str) {
-    var resultat = RegExp.prototype[Symbol.matchAll].call(this, str);
-    if (!resultat) {
-      return null;
-    } else {
-      return Array.from(resultat);
-    }
-  }
-}
-
-var re = new MaRegExp('([0-9]+)-([0-9]+)-([0-9]+)', 'g');
-var str = '2016-01-02|2019-03-07';
-var resultat = str.matchAll(re);
-console.log(resultat[0]); // [ "2016-01-02", "2016", "01", "02" ]
-console.log(resultat[1]); // [ "2019-03-07", "2019", "03", "07" ]
-
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-regexp-prototype-matchall', 'RegExp.prototype[@@matchAll]')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@matchAll")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.md new file mode 100644 index 0000000000..303390a68c --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@matchall/index.md @@ -0,0 +1,106 @@ +--- +title: RegExp.prototype[@@matchAll]() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll +tags: + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@matchAll +--- +

{{JSRef}}

+ +

La méthode [@@matchAll] renvoie l'ensemble des correspondances d'une expression rationnelle sur une chaîne de caractères.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@matchall.html")}}
+ +

Syntaxe

+ +
regexp[Symbol.matchAll](str)
+ +

Paramètres

+ +
+
str
+
Une chaîne de caractères ({{jsxref("String")}}) dont on souhaite trouver les correspondances.
+
+ +

Valeur de retour

+ +

Un itérateur.

+ +

Description

+ +

Cette méthode est appelée, en interne, par le moteur JavaScript, pendant l'exécution {{jsxref("String.prototype.matchAll()")}}. Les deux lignes qui suivent renverront donc le même résultat.

+ +
'abc'.matchAll(/a/);
+
+/a/[Symbol.matchAll]('abc');
+ +

Cette méthode existe afin de personnaliser le comportement des correspondances pour les sous-classes de RegExp.

+ +

Exemples

+ +

Appel direct

+ +

Cette méthode peut être utilisée de façon semblable à {{jsxref("String.prototype.matchAll()")}} mais l'objet this et l'ordre des arguments seront différents.

+ +
var re = /[0-9]+/g;
+var str = '2016-01-02';
+var resultat = re[Symbol.matchAll](str);
+
+console.log(Array.from(resultat, x => x[0]));
+// ["2016", "01", "02"]
+
+ +

Utiliser @@matchAll dans une sous-classe

+ +

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@matchAll]() afin de modifier le comportement par défaut (par exemple pour renvoyer un tableau ({{jsxref("Array")}}) plutôt qu'un itérateur).

+ +
class MaRegExp extends RegExp {
+  [Symbol.matchAll](str) {
+    var resultat = RegExp.prototype[Symbol.matchAll].call(this, str);
+    if (!resultat) {
+      return null;
+    } else {
+      return Array.from(resultat);
+    }
+  }
+}
+
+var re = new MaRegExp('([0-9]+)-([0-9]+)-([0-9]+)', 'g');
+var str = '2016-01-02|2019-03-07';
+var resultat = str.matchAll(re);
+console.log(resultat[0]); // [ "2016-01-02", "2016", "01", "02" ]
+console.log(resultat[1]); // [ "2019-03-07", "2019", "03", "07" ]
+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-regexp-prototype-matchall', 'RegExp.prototype[@@matchAll]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@matchAll")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.html deleted file mode 100644 index 699bb1ad11..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: RegExp.prototype[@@replace]() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@replace -tags: - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@replace -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@replace ---- -
{{JSRef}}
- -

La méthode [@@replace]() remplace toutes ou certaines correspondances d'un motif this dans une chaîne de caractère avec un outil de remplacement. La valeur renvoyée est la nouvelle chaîne ainsi créée. Cet outil de remplacement peut être une chaîne de caractère ou une fonction appelée pour chacune des correspondances.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@replace.html")}}
- -

Syntaxe

- -
regexp[Symbol.replace](str, newSubStr|function)
- -

Paramètres

- -
-
str
-
Une chaîne de caractères ({{jsxref("String")}}) pour laquelle on souhaite effectuer des remplacement.
-
newSubStr (replacement)
-
La chaîne de caractères qui remplace les correspondances trouvées. On peut effectuer le remplacement sur un nombre donné de correspondances (cf. la section {{jsxref("String.prototype.replace", "Utiliser une chaîne de caractères comme paramètre", "#Utiliser_une_chaîne_de_caractère_comme_paramètre", 1)}} de la page {{jsxref("String.prototype.replace()")}}).
-
function (replacement)
-
Une fonction qui est appelée pour créer la sous-chaîne de remplacement. Les arguments fournis à cette fonction sont décrits dans la section {{jsxref("String.prototype.replace", "Utiliser une chaîne de caractères comme paramètre", "#Utiliser_une_chaîne_de_caractère_comme_paramètre", 1)}} de la page {{jsxref("String.prototype.replace()")}}.
-
- -

Valeur de retour

- -

Une nouvelle chaîne de caractères pour laquelle les correspondances (toutes ou une partie) ont été remplacées.

- -

Description

- -

Cette méthode est appelée de façon interne par la méthode {{jsxref("String.prototype.replace()")}} lorsque l'arugment pattern argument est un objet {{jsxref("RegExp")}}. Les deux lignes de code qui suivent sont équivalentes et la seconde est la version interne de la première :

- -
'abc'.replace(/a/, 'A');
-
-/a/[Symbol.replace]('abc', 'A');
- -

Cette méthode existe afin de pouvoir personnaliser le comportement du remplacement pour les classes filles de RegExp.

- -

Si l'argument décrivant le motif n'est pas un objet {{jsxref("RegExp")}}, {{jsxref("String.prototype.replace()")}} n'appellera pas cette méthode et ne créera pas d'objet {{jsxref("RegExp")}}.

- -

Exemples

- -

Appel direct

- -

Cette méthode peut être utilisée comme {{jsxref("String.prototype.replace()")}}, aux différences près que l'objet this est différent et que l'ordre des arguments change :

- -
var re = /-/g;
-var str = '2016-01-01';
-var newstr = re[Symbol.replace](str, '.');
-console.log(newstr);  // 2016.01.01
-
- -

Utiliser @@replace dans une sous-classe

- -

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@replace]() pour modifier le comportement.

- -
class MaRegExp extends RegExp {
-  constructor(pattern, flags, count) {
-    super(pattern, flags);
-    this.count = count;
-  }
-  [Symbol.replace](str, replacement) {
-    // Applique @@replace |count| fois.
-    var result = str;
-    for (var i = 0; i < this.count; i++) {
-      result = RegExp.prototype[Symbol.replace].call(this, result, replacement);
-    }
-    return result;
-  }
-}
-
-var re = new MaRegExp('\\d', '', 3);
-var str = '01234567';
-var newstr = str.replace(re, '#'); // String.prototype.replace appelle re[@@replace].
-console.log(newstr); // ###34567
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@replace', 'RegExp.prototype[@@replace]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@replace', 'RegExp.prototype[@@replace]')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@replace")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.md new file mode 100644 index 0000000000..699bb1ad11 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@replace/index.md @@ -0,0 +1,121 @@ +--- +title: RegExp.prototype[@@replace]() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@replace +tags: + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@replace +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@replace +--- +
{{JSRef}}
+ +

La méthode [@@replace]() remplace toutes ou certaines correspondances d'un motif this dans une chaîne de caractère avec un outil de remplacement. La valeur renvoyée est la nouvelle chaîne ainsi créée. Cet outil de remplacement peut être une chaîne de caractère ou une fonction appelée pour chacune des correspondances.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@replace.html")}}
+ +

Syntaxe

+ +
regexp[Symbol.replace](str, newSubStr|function)
+ +

Paramètres

+ +
+
str
+
Une chaîne de caractères ({{jsxref("String")}}) pour laquelle on souhaite effectuer des remplacement.
+
newSubStr (replacement)
+
La chaîne de caractères qui remplace les correspondances trouvées. On peut effectuer le remplacement sur un nombre donné de correspondances (cf. la section {{jsxref("String.prototype.replace", "Utiliser une chaîne de caractères comme paramètre", "#Utiliser_une_chaîne_de_caractère_comme_paramètre", 1)}} de la page {{jsxref("String.prototype.replace()")}}).
+
function (replacement)
+
Une fonction qui est appelée pour créer la sous-chaîne de remplacement. Les arguments fournis à cette fonction sont décrits dans la section {{jsxref("String.prototype.replace", "Utiliser une chaîne de caractères comme paramètre", "#Utiliser_une_chaîne_de_caractère_comme_paramètre", 1)}} de la page {{jsxref("String.prototype.replace()")}}.
+
+ +

Valeur de retour

+ +

Une nouvelle chaîne de caractères pour laquelle les correspondances (toutes ou une partie) ont été remplacées.

+ +

Description

+ +

Cette méthode est appelée de façon interne par la méthode {{jsxref("String.prototype.replace()")}} lorsque l'arugment pattern argument est un objet {{jsxref("RegExp")}}. Les deux lignes de code qui suivent sont équivalentes et la seconde est la version interne de la première :

+ +
'abc'.replace(/a/, 'A');
+
+/a/[Symbol.replace]('abc', 'A');
+ +

Cette méthode existe afin de pouvoir personnaliser le comportement du remplacement pour les classes filles de RegExp.

+ +

Si l'argument décrivant le motif n'est pas un objet {{jsxref("RegExp")}}, {{jsxref("String.prototype.replace()")}} n'appellera pas cette méthode et ne créera pas d'objet {{jsxref("RegExp")}}.

+ +

Exemples

+ +

Appel direct

+ +

Cette méthode peut être utilisée comme {{jsxref("String.prototype.replace()")}}, aux différences près que l'objet this est différent et que l'ordre des arguments change :

+ +
var re = /-/g;
+var str = '2016-01-01';
+var newstr = re[Symbol.replace](str, '.');
+console.log(newstr);  // 2016.01.01
+
+ +

Utiliser @@replace dans une sous-classe

+ +

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger la méthode [@@replace]() pour modifier le comportement.

+ +
class MaRegExp extends RegExp {
+  constructor(pattern, flags, count) {
+    super(pattern, flags);
+    this.count = count;
+  }
+  [Symbol.replace](str, replacement) {
+    // Applique @@replace |count| fois.
+    var result = str;
+    for (var i = 0; i < this.count; i++) {
+      result = RegExp.prototype[Symbol.replace].call(this, result, replacement);
+    }
+    return result;
+  }
+}
+
+var re = new MaRegExp('\\d', '', 3);
+var str = '01234567';
+var newstr = str.replace(re, '#'); // String.prototype.replace appelle re[@@replace].
+console.log(newstr); // ###34567
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@replace', 'RegExp.prototype[@@replace]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@replace', 'RegExp.prototype[@@replace]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@replace")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html deleted file mode 100644 index 0865f313ed..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: RegExp.prototype[@@search]() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@search -tags: - - Expressions rationnelles - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@search -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@search ---- -
{{JSRef}}
- -

La méthode [@@search]() recherche une correspondance entre une expression rationnelle décrite par this et une chaîne de caractères donnée.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@search.html")}}
- -

Syntaxe

- -
regexp[Symbol.search](str)
- -

Paramètres

- -
-
str
-
Une chaîne de caractères ({{jsxref("String")}}) sur laquelle on veut rechercher une correspondance.
-
- -

Valeur de retour

- -
-
entier
-
Si la recherche réussit, [@@search]() renvoie la position de la première correspondance de l'expression rationnelle au sein de la chaîne, sinon elle renvoie -1.
-
- -

Description

- -

Cette méthode est appelée en interne lors de l'utilisation de {{jsxref("String.prototype.search()")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

- -
'abc'.search(/a/);
-
-/a/[Symbol.search]('abc');
- -

Cette méthode existe afin de pouvoir adapter le comportement de la recherche pour les sous-classes de RegExp.

- -

Exemples

- -

Appel direct

- -

Cette méthode peut être utilisée comme {{jsxref("String.prototype.search()")}}, elle utilise simplement un objet this différent et un ordre de paramètres différent :

- -
var re = /-/g;
-var str = '2016-01-02';
-var résultat = re[Symbol.search](str);
-console.log(résultat);  // 4
-
- -

Utiliser @@search avec une sous-classe

- -

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger [@@search]() afin de modifier le comportement obtenu :

- -
class MaRegExp extends RegExp {
-  constructor(str) {
-    super(str)
-    this.pattern = str;
-  }
-  [Symbol.search](str) {
-    return str.indexOf(this.pattern);
-  }
-}
-
-var re = new MaRegExp('a+b');
-var str = 'ab a+b';
-var résultat = str.search(re); // String.prototype.search appelle re[@@search].
-console.log(résultat); // 3
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@search', 'RegExp.prototype[@@search]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@search', 'RegExp.prototype[@@search]')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@search")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.md new file mode 100644 index 0000000000..0865f313ed --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.md @@ -0,0 +1,115 @@ +--- +title: RegExp.prototype[@@search]() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@search +tags: + - Expressions rationnelles + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@search +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@search +--- +
{{JSRef}}
+ +

La méthode [@@search]() recherche une correspondance entre une expression rationnelle décrite par this et une chaîne de caractères donnée.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@search.html")}}
+ +

Syntaxe

+ +
regexp[Symbol.search](str)
+ +

Paramètres

+ +
+
str
+
Une chaîne de caractères ({{jsxref("String")}}) sur laquelle on veut rechercher une correspondance.
+
+ +

Valeur de retour

+ +
+
entier
+
Si la recherche réussit, [@@search]() renvoie la position de la première correspondance de l'expression rationnelle au sein de la chaîne, sinon elle renvoie -1.
+
+ +

Description

+ +

Cette méthode est appelée en interne lors de l'utilisation de {{jsxref("String.prototype.search()")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

+ +
'abc'.search(/a/);
+
+/a/[Symbol.search]('abc');
+ +

Cette méthode existe afin de pouvoir adapter le comportement de la recherche pour les sous-classes de RegExp.

+ +

Exemples

+ +

Appel direct

+ +

Cette méthode peut être utilisée comme {{jsxref("String.prototype.search()")}}, elle utilise simplement un objet this différent et un ordre de paramètres différent :

+ +
var re = /-/g;
+var str = '2016-01-02';
+var résultat = re[Symbol.search](str);
+console.log(résultat);  // 4
+
+ +

Utiliser @@search avec une sous-classe

+ +

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger [@@search]() afin de modifier le comportement obtenu :

+ +
class MaRegExp extends RegExp {
+  constructor(str) {
+    super(str)
+    this.pattern = str;
+  }
+  [Symbol.search](str) {
+    return str.indexOf(this.pattern);
+  }
+}
+
+var re = new MaRegExp('a+b');
+var str = 'ab a+b';
+var résultat = str.search(re); // String.prototype.search appelle re[@@search].
+console.log(résultat); // 3
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@search', 'RegExp.prototype[@@search]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@search', 'RegExp.prototype[@@search]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@search")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.html deleted file mode 100644 index 22f0fbb375..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: get RegExp[@@species] -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@species -tags: - - Expressions rationnelles - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@species -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@species ---- -
{{JSRef}}
- -

La propriété accesseur RegExp[@@species] renvoie le constructeur RegExp.

- -
{{EmbedInteractiveExample("pages/js/regexp-getregexp-@@species.html")}}
- -

Syntaxe

- -
RegExp[Symbol.species]
-
- -

Description

- -

L'accesseur species renvoie le constructeur par défaut pour les objets RegExp. Les constructeurs des sous-classes peuvent surcharger ce symbole afin de modifier l'affectation du constructeur.

- -

Exemples

- -

La propriété species renvoie le constructeur par défaut, dans le cas des objets RegExp, c'est le constructeur RegExp :

- -
RegExp[Symbol.species]; // function RegExp()
- -

Pour les objets dérivés (par exemple, une classe MaRegExp), la valeur de species sera le constructeur MaRegExp. Il est possible de surcharger ce comportement afin de renvoyer le constructeur parent RegExp :

- -
class MaRegExp extends RegExp {
-  // On surcharge species pour renvoyer
-  // le constructeur parent RegExp
-  static get [Symbol.species]() { return RegExp; }
-}
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-get-regexp-@@species', 'get RegExp [ @@species ]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp-@@species', 'get RegExp [ @@species ]')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@species")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.md new file mode 100644 index 0000000000..22f0fbb375 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@species/index.md @@ -0,0 +1,74 @@ +--- +title: get RegExp[@@species] +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@species +tags: + - Expressions rationnelles + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@species +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@species +--- +
{{JSRef}}
+ +

La propriété accesseur RegExp[@@species] renvoie le constructeur RegExp.

+ +
{{EmbedInteractiveExample("pages/js/regexp-getregexp-@@species.html")}}
+ +

Syntaxe

+ +
RegExp[Symbol.species]
+
+ +

Description

+ +

L'accesseur species renvoie le constructeur par défaut pour les objets RegExp. Les constructeurs des sous-classes peuvent surcharger ce symbole afin de modifier l'affectation du constructeur.

+ +

Exemples

+ +

La propriété species renvoie le constructeur par défaut, dans le cas des objets RegExp, c'est le constructeur RegExp :

+ +
RegExp[Symbol.species]; // function RegExp()
+ +

Pour les objets dérivés (par exemple, une classe MaRegExp), la valeur de species sera le constructeur MaRegExp. Il est possible de surcharger ce comportement afin de renvoyer le constructeur parent RegExp :

+ +
class MaRegExp extends RegExp {
+  // On surcharge species pour renvoyer
+  // le constructeur parent RegExp
+  static get [Symbol.species]() { return RegExp; }
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-get-regexp-@@species', 'get RegExp [ @@species ]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp-@@species', 'get RegExp [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@species")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html b/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html deleted file mode 100644 index 99fcaf30d4..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: RegExp.prototype[@@split]() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@split -tags: - - Expressions rationnelles - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@split -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@split ---- -
{{JSRef}}
- -

La méthode [@@split]() permet de découper une chaîne de caractères ({{jsxref("String")}}) en un tableau de sous-chaînes.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@split.html")}}
- -

Syntaxe

- -
regexp[Symbol.split](str[, limite])
- -

Paramètres

- -
-
str
-
La chaîne de caractères qu'on souhaite découper.
-
limite
-
-

Paramètre optionnel. Un entier indiquant le nombre maximal de sous-chaînes à trouver. La méthode [@@split]() découpe la chaîne pour chaque correspondance de l'expression rationnelle this jusqu'à ce que le nombre d'éléments obtenus atteigne cette limite ou que la chaîne n'ait plus de correspondances.

-
-
- -

Valeur de retour

- -

Un tableau ({{jsxref("Array")}}) dont les éléments sont les sous-chaînes de caractères issues de la découpe.

- -

Description

- -

Cette méthode est appelée de façon interne par la méthode {{jsxref("String.prototype.split()")}} lorsque l'argument str est un objet {{jsxref("RegExp")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

- -
'a-b-c'.split(/-/);
-
-/-/[Symbol.split]('a-b-c');
- -

Cette méthode existe afin de pouvoir adapter le fonctionnement de la découpe pour les sous-classes de RegExp.

- -

Si le séparateur n'est pas un objet {{jsxref("RegExp")}}, la méthode {{jsxref("String.prototype.split()")}} n'appellera pas cette méthode et ne créera pas d'objet {{jsxref("RegExp")}}.

- -

Exemples

- -

Appel direct

- -

Cette méthode peut être utilisée comme  {{jsxref("String.prototype.split()")}}, l'objet this est différent et l'ordre des arguments également.

- -
var re = /-/g;
-var str = '2016-01-02';
-var résultat = re[Symbol.split](str);
-console.log(résultat);  // ["2016", "01", "02"]
-
- -

Utiliser @@split avec une sous-classe

- -

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger  [@@split]() afin de modifier le comportement de la découpe :

- -
class MaRegExp extends RegExp {
-  [Symbol.split](str, limit) {
-    var résultat = RegExp.prototype[Symbol.split].call(this, str, limit);
-    return résultat.map(x => "(" + x + ")");
-  }
-}
-
-var re = new MaRegExp('-');
-var str = '2016-01-02';
-var résultat = str.split(re); // String.prototype.split appelle re[@@split].
-console.log(résultat); // ["(2016)", "(01)", "(02)"]
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.@@split")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.md b/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.md new file mode 100644 index 0000000000..99fcaf30d4 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.md @@ -0,0 +1,115 @@ +--- +title: RegExp.prototype[@@split]() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@split +tags: + - Expressions rationnelles + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@split +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@split +--- +
{{JSRef}}
+ +

La méthode [@@split]() permet de découper une chaîne de caractères ({{jsxref("String")}}) en un tableau de sous-chaînes.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@split.html")}}
+ +

Syntaxe

+ +
regexp[Symbol.split](str[, limite])
+ +

Paramètres

+ +
+
str
+
La chaîne de caractères qu'on souhaite découper.
+
limite
+
+

Paramètre optionnel. Un entier indiquant le nombre maximal de sous-chaînes à trouver. La méthode [@@split]() découpe la chaîne pour chaque correspondance de l'expression rationnelle this jusqu'à ce que le nombre d'éléments obtenus atteigne cette limite ou que la chaîne n'ait plus de correspondances.

+
+
+ +

Valeur de retour

+ +

Un tableau ({{jsxref("Array")}}) dont les éléments sont les sous-chaînes de caractères issues de la découpe.

+ +

Description

+ +

Cette méthode est appelée de façon interne par la méthode {{jsxref("String.prototype.split()")}} lorsque l'argument str est un objet {{jsxref("RegExp")}}. Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

+ +
'a-b-c'.split(/-/);
+
+/-/[Symbol.split]('a-b-c');
+ +

Cette méthode existe afin de pouvoir adapter le fonctionnement de la découpe pour les sous-classes de RegExp.

+ +

Si le séparateur n'est pas un objet {{jsxref("RegExp")}}, la méthode {{jsxref("String.prototype.split()")}} n'appellera pas cette méthode et ne créera pas d'objet {{jsxref("RegExp")}}.

+ +

Exemples

+ +

Appel direct

+ +

Cette méthode peut être utilisée comme  {{jsxref("String.prototype.split()")}}, l'objet this est différent et l'ordre des arguments également.

+ +
var re = /-/g;
+var str = '2016-01-02';
+var résultat = re[Symbol.split](str);
+console.log(résultat);  // ["2016", "01", "02"]
+
+ +

Utiliser @@split avec une sous-classe

+ +

Les sous-classes de {{jsxref("RegExp")}} peuvent surcharger  [@@split]() afin de modifier le comportement de la découpe :

+ +
class MaRegExp extends RegExp {
+  [Symbol.split](str, limit) {
+    var résultat = RegExp.prototype[Symbol.split].call(this, str, limit);
+    return résultat.map(x => "(" + x + ")");
+  }
+}
+
+var re = new MaRegExp('-');
+var str = '2016-01-02';
+var résultat = str.split(re); // String.prototype.split appelle re[@@split].
+console.log(résultat); // ["(2016)", "(01)", "(02)"]
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.@@split")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/compile/index.html b/files/fr/web/javascript/reference/global_objects/regexp/compile/index.html deleted file mode 100644 index d6002f1ba0..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/compile/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: RegExp.prototype.compile() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/compile -tags: - - Deprecated - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/compile -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/compile ---- -
{{JSRef}} {{deprecated_header}}
- -

La méthode dépréciée compile() est utilisée afin de (re)compiler une expression rationnelle lors de l'exécution d'un script. Cette méthode effectue essentiellement les mêmes actions que le constructeur RegExp.

- -

Syntaxe

- -
regexObj.compile(motif, flags)
- -

Paramètres

- -
-
motif
-
Le texte de l'expression rationnelle.
-
flags
-
-

S'ils sont utilisés, les drapeaux (flags) peuvent être combinés avec les valeurs suivantes :

- -
-
g
-
correspondance globale
-
i
-
ignorer la casse
-
m
-
multiligne : on traite les caractères de début et de fin (^ et $) de façon à travailler sur plusieurs lignes (ils correspondent au début et à la fin de chaque ligne et non au début ou à la fin de la chaîne entière)
-
y
-
adhérence : ne recherche les correspondances qu'à partir de l'indice fourni par la propriété lastIndex de l'expression rationnelle dans la chaîne cible (la recherche n'est pas effectuée pour les indices suivants).
-
-
-
- -

Description

- -

La méthode compile est dépréciée. Pour obtenir le même effet, on utilisera le constructeur RegExp.

- -

Exemples

- -

Dans l'exemple qui suit, on voit comment réinitialiser le motif et les drapeaux d'une expression rationnelle grâce à  la méthode compile().

- -
var regexObj = new RegExp("toto", "gi");
-regexObj.compile("nouveau toto", "g");
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('ES6', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ES6')}}Définition initiale dans l'annexe B (normative) pour les fonctionnalités ECMAScript additionnelles pour les navigateurs web.
{{SpecName('ESDraft', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ESDraft')}}Définition initiale dans l'annexe B (normative) pour les fonctionnalités ECMAScript additionnelles pour les navigateurs web.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.compile")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/compile/index.md b/files/fr/web/javascript/reference/global_objects/regexp/compile/index.md new file mode 100644 index 0000000000..d6002f1ba0 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/compile/index.md @@ -0,0 +1,86 @@ +--- +title: RegExp.prototype.compile() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/compile +tags: + - Deprecated + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/compile +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/compile +--- +
{{JSRef}} {{deprecated_header}}
+ +

La méthode dépréciée compile() est utilisée afin de (re)compiler une expression rationnelle lors de l'exécution d'un script. Cette méthode effectue essentiellement les mêmes actions que le constructeur RegExp.

+ +

Syntaxe

+ +
regexObj.compile(motif, flags)
+ +

Paramètres

+ +
+
motif
+
Le texte de l'expression rationnelle.
+
flags
+
+

S'ils sont utilisés, les drapeaux (flags) peuvent être combinés avec les valeurs suivantes :

+ +
+
g
+
correspondance globale
+
i
+
ignorer la casse
+
m
+
multiligne : on traite les caractères de début et de fin (^ et $) de façon à travailler sur plusieurs lignes (ils correspondent au début et à la fin de chaque ligne et non au début ou à la fin de la chaîne entière)
+
y
+
adhérence : ne recherche les correspondances qu'à partir de l'indice fourni par la propriété lastIndex de l'expression rationnelle dans la chaîne cible (la recherche n'est pas effectuée pour les indices suivants).
+
+
+
+ +

Description

+ +

La méthode compile est dépréciée. Pour obtenir le même effet, on utilisera le constructeur RegExp.

+ +

Exemples

+ +

Dans l'exemple qui suit, on voit comment réinitialiser le motif et les drapeaux d'une expression rationnelle grâce à  la méthode compile().

+ +
var regexObj = new RegExp("toto", "gi");
+regexObj.compile("nouveau toto", "g");
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES6', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ES6')}}Définition initiale dans l'annexe B (normative) pour les fonctionnalités ECMAScript additionnelles pour les navigateurs web.
{{SpecName('ESDraft', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ESDraft')}}Définition initiale dans l'annexe B (normative) pour les fonctionnalités ECMAScript additionnelles pour les navigateurs web.
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.compile")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.html b/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.html deleted file mode 100644 index d3942bbb9a..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: RegExp.prototype.dotAll -slug: Web/JavaScript/Reference/Global_Objects/RegExp/dotAll -tags: - - Draft - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/dotAll -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/dotAll ---- -

{{JSRef}}{{Draft}}

- -

La propriété dotAll indique si le marqueur "s" est utilisé pour l'expression rationnelle. dotAll est une propriété en lecture seule et qui renseigne à propos de l'expression rationnelle courante.

- -

{{JS_Property_Attributes(0, 0, 1)}}

- -

Description

- -

dotAll est un booléen qui vaut true si le marqueur "s" a été utilisé pour l'expression et false sinon. Le marqueur "s" indique que le caractère spécial point (".") doit également correspondre aux caractères de saut de ligne (et pour lesquels il ne correspondrait pas s'il n'était pas activé) :

- - - -

Cela signifie ainsi que le point peut correspondre à n'importe quel caractère du plan multilingue de base Unicode (ou Basic Multilingual Plane (BMP)). Si on souhaite également cibler les caractères des plans astraux, il faudra utiliser le marqueur "u" (unicode). En utilisant les deux marqueurs simultanément, on peut alors cibler n'importe quel caractère Unicode.

- -

Cette propriété est uniquement accessible en lecture et ne peut pas être modifiée.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.dotAll")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.md b/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.md new file mode 100644 index 0000000000..d3942bbb9a --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/dotall/index.md @@ -0,0 +1,49 @@ +--- +title: RegExp.prototype.dotAll +slug: Web/JavaScript/Reference/Global_Objects/RegExp/dotAll +tags: + - Draft + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/dotAll +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/dotAll +--- +

{{JSRef}}{{Draft}}

+ +

La propriété dotAll indique si le marqueur "s" est utilisé pour l'expression rationnelle. dotAll est une propriété en lecture seule et qui renseigne à propos de l'expression rationnelle courante.

+ +

{{JS_Property_Attributes(0, 0, 1)}}

+ +

Description

+ +

dotAll est un booléen qui vaut true si le marqueur "s" a été utilisé pour l'expression et false sinon. Le marqueur "s" indique que le caractère spécial point (".") doit également correspondre aux caractères de saut de ligne (et pour lesquels il ne correspondrait pas s'il n'était pas activé) :

+ + + +

Cela signifie ainsi que le point peut correspondre à n'importe quel caractère du plan multilingue de base Unicode (ou Basic Multilingual Plane (BMP)). Si on souhaite également cibler les caractères des plans astraux, il faudra utiliser le marqueur "u" (unicode). En utilisant les deux marqueurs simultanément, on peut alors cibler n'importe quel caractère Unicode.

+ +

Cette propriété est uniquement accessible en lecture et ne peut pas être modifiée.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.dotAll")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/exec/index.html b/files/fr/web/javascript/reference/global_objects/regexp/exec/index.html deleted file mode 100644 index 3245c98358..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/exec/index.html +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: RegExp.prototype.exec() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/exec -tags: - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/exec ---- -
{{JSRef}}
- -

La méthode exec() exécute la recherche d'une correspondance sur une chaîne de caractères donnée. Elle renvoie un tableau contenant les résultats ou {{jsxref("null")}}.

- -

Si on souhaite uniquement savoir s'il y a une correspondance, on utilisera la méthode {{jsxref("RegExp.prototype.test()")}} ou la méthode {{jsxref("String.prototype.search()")}}.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-exec.html")}}
- - - -

Les objets représentant des expressions rationnelles gardent un état en mémoire lorsqu'ils utilisent les marqueurs {{jsxref("RegExp.global", "global")}} ou {{jsxref("RegExp.sticky", "sticky")}} et ils gardent notamment en mémoire {{jsxref("RegExp.lastIndex", "lastIndex")}} à partir de la correspondance précédemment trouvée. Ainsi, exec() peut être utilisée afin de parcourir plusieurs correspondances dans un texte (avec des groupes capturants) (contrairement à {{jsxref("String.prototype.match()")}}).

- -

Syntaxe

- -
regexObj.exec(chaîne)
- -

Paramètres

- -
-
chaîne
-
La chaîne de caractères dans laquelle on recherche la correspondance décrite par l'expression rationnelle.
-
- -

Valeur de retour

- -

S'il y a une correspondance, la méthode exec() renvoie un tableau (contenant des éléments et deux propriétés index et values, cf. ci-après) et met à jour les propriétés de l'objet représentant l'expression rationnelle (notamment {{jsxref("RegExp.lastIndex", "lastIndex")}}). Le tableau renvoyé contient le texte qui correspond dans le premier élément puis un élément pour chaque groupe capturé dans les parenthèses capturantes.

- -

S'il n'y a aucune correspondance, la méthode exec() renvoie {{jsxref("null")}} et la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} reçoit la valeur 0.

- -

Description

- -

Si on a l'exemple suivant :

- -
// On a une correspondance si on a "quick brown" suivi par "jumps", on ignore les caractères entre
-// On garde en mémoire "brown" et "jumps"
-// On ignore la casse
-var re = /quick\s(brown).+?(jumps)/ig;
-var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
-
- -

Le tableau suivant montre l'état résultant suite à ce script :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ObjetPropriété/IndexDescriptionExemple
result[0]La chaîne complète des caractères qui correspondent."Quick Brown Fox Jumps"
[1], ...[n ]Les sous-chaînes correspondantes aux groupes capturants s'il y en a. Le nombre de groupes de parenthèses capturantes est illimité.result[1] === "Brown"
- result[2] === "Jumps"
indexL'indice (compté à partir de 0) de la correspondance dans la chaîne.4
inputLa chaîne de caractères utilisée en entrée."The Quick Brown Fox Jumps Over The Lazy Dog"
relastIndexL'indice à partir duquel chercher la prochaine correspondance. Lorsque le drapeau "g" est absent, cette propriété sera 0.25
ignoreCaseIndique si le drapeau "i" a été utilisé pour ignorer la casse.true
globalIndique si le drapeau "g" a été utilisé pour la correspondance globale.true
multilineIndique si le drapeau "m" a été utilisé pour chercher une correspondance sur plusieurs lignes.false
sourceLe texte du motif."quick\s(brown).+?(jumps)"
- -

Exemples

- -

Trouver des correspondances successives

- -

Si on utilise le drapeau "g" dans l'expression rationnelle, on peut utiliser la méthode exec() plusieurs fois afin de trouver les correspondances successives dans la chaîne. Lorsqu'on procède ainsi, la recherche reprend à la position indiquée par la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ({{jsxref("RegExp.prototype.test()", "test()")}} fera également progresser la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}}).

- -

On notera que la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ne sera pas réinitialisée lors de la recherche sur une autre chaîne de caractères, c'est la valeur existante de {{jsxref("RegExp.lastIndex", "lastIndex")}} qui sera utilisée.

- -

Par exemple, si on utilise le fragment de code suivant :

- -
var maRegex = /ab*/g;
-var str = 'abbcdefabh';
-var monTableau;
-while ((monTableau = maRegex.exec(str)) !== null) {
-  var msg = 'Trouvé ' + monTableau[0] + '. ';
-  msg += 'Prochaine correspondance à partir de ' + maRegex.lastIndex;
-  console.log(msg);
-}
-
- -

Le script affichera alors :

- -
Trouvé abb. Prochaine correspondance à partir de 3
-Trouvé ab. Prochaine correspondance à partir de 9
-
- -
-

Attention : Il ne faut pas placer un littéral d'expression rationnelle (ou le constructeur {{jsxref("RegExp")}}) au sein de la condition while car cela créerait un boucle infinie s'il y a une correspondance car la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} serait redéfinie à chaque itération. Il faut également s'assurer que le drapeau global est défini sinon on aura également une boucle.

-
- -

Utiliser exec() avec des littéraux

- -

Il est aussi possible d'utiliser exec() sans créer d'objet {{jsxref("RegExp")}} explicite :

- -
var matches = /(coucou \S+)/.exec('Ceci est un coucou monde !');
-console.log(matches[1]);
-
- -

Cela affichera 'coucou monde !'.

- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.exec")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md b/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md new file mode 100644 index 0000000000..3245c98358 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md @@ -0,0 +1,199 @@ +--- +title: RegExp.prototype.exec() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/exec +tags: + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/exec +--- +
{{JSRef}}
+ +

La méthode exec() exécute la recherche d'une correspondance sur une chaîne de caractères donnée. Elle renvoie un tableau contenant les résultats ou {{jsxref("null")}}.

+ +

Si on souhaite uniquement savoir s'il y a une correspondance, on utilisera la méthode {{jsxref("RegExp.prototype.test()")}} ou la méthode {{jsxref("String.prototype.search()")}}.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-exec.html")}}
+ + + +

Les objets représentant des expressions rationnelles gardent un état en mémoire lorsqu'ils utilisent les marqueurs {{jsxref("RegExp.global", "global")}} ou {{jsxref("RegExp.sticky", "sticky")}} et ils gardent notamment en mémoire {{jsxref("RegExp.lastIndex", "lastIndex")}} à partir de la correspondance précédemment trouvée. Ainsi, exec() peut être utilisée afin de parcourir plusieurs correspondances dans un texte (avec des groupes capturants) (contrairement à {{jsxref("String.prototype.match()")}}).

+ +

Syntaxe

+ +
regexObj.exec(chaîne)
+ +

Paramètres

+ +
+
chaîne
+
La chaîne de caractères dans laquelle on recherche la correspondance décrite par l'expression rationnelle.
+
+ +

Valeur de retour

+ +

S'il y a une correspondance, la méthode exec() renvoie un tableau (contenant des éléments et deux propriétés index et values, cf. ci-après) et met à jour les propriétés de l'objet représentant l'expression rationnelle (notamment {{jsxref("RegExp.lastIndex", "lastIndex")}}). Le tableau renvoyé contient le texte qui correspond dans le premier élément puis un élément pour chaque groupe capturé dans les parenthèses capturantes.

+ +

S'il n'y a aucune correspondance, la méthode exec() renvoie {{jsxref("null")}} et la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} reçoit la valeur 0.

+ +

Description

+ +

Si on a l'exemple suivant :

+ +
// On a une correspondance si on a "quick brown" suivi par "jumps", on ignore les caractères entre
+// On garde en mémoire "brown" et "jumps"
+// On ignore la casse
+var re = /quick\s(brown).+?(jumps)/ig;
+var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
+
+ +

Le tableau suivant montre l'état résultant suite à ce script :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ObjetPropriété/IndexDescriptionExemple
result[0]La chaîne complète des caractères qui correspondent."Quick Brown Fox Jumps"
[1], ...[n ]Les sous-chaînes correspondantes aux groupes capturants s'il y en a. Le nombre de groupes de parenthèses capturantes est illimité.result[1] === "Brown"
+ result[2] === "Jumps"
indexL'indice (compté à partir de 0) de la correspondance dans la chaîne.4
inputLa chaîne de caractères utilisée en entrée."The Quick Brown Fox Jumps Over The Lazy Dog"
relastIndexL'indice à partir duquel chercher la prochaine correspondance. Lorsque le drapeau "g" est absent, cette propriété sera 0.25
ignoreCaseIndique si le drapeau "i" a été utilisé pour ignorer la casse.true
globalIndique si le drapeau "g" a été utilisé pour la correspondance globale.true
multilineIndique si le drapeau "m" a été utilisé pour chercher une correspondance sur plusieurs lignes.false
sourceLe texte du motif."quick\s(brown).+?(jumps)"
+ +

Exemples

+ +

Trouver des correspondances successives

+ +

Si on utilise le drapeau "g" dans l'expression rationnelle, on peut utiliser la méthode exec() plusieurs fois afin de trouver les correspondances successives dans la chaîne. Lorsqu'on procède ainsi, la recherche reprend à la position indiquée par la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ({{jsxref("RegExp.prototype.test()", "test()")}} fera également progresser la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}}).

+ +

On notera que la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ne sera pas réinitialisée lors de la recherche sur une autre chaîne de caractères, c'est la valeur existante de {{jsxref("RegExp.lastIndex", "lastIndex")}} qui sera utilisée.

+ +

Par exemple, si on utilise le fragment de code suivant :

+ +
var maRegex = /ab*/g;
+var str = 'abbcdefabh';
+var monTableau;
+while ((monTableau = maRegex.exec(str)) !== null) {
+  var msg = 'Trouvé ' + monTableau[0] + '. ';
+  msg += 'Prochaine correspondance à partir de ' + maRegex.lastIndex;
+  console.log(msg);
+}
+
+ +

Le script affichera alors :

+ +
Trouvé abb. Prochaine correspondance à partir de 3
+Trouvé ab. Prochaine correspondance à partir de 9
+
+ +
+

Attention : Il ne faut pas placer un littéral d'expression rationnelle (ou le constructeur {{jsxref("RegExp")}}) au sein de la condition while car cela créerait un boucle infinie s'il y a une correspondance car la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} serait redéfinie à chaque itération. Il faut également s'assurer que le drapeau global est défini sinon on aura également une boucle.

+
+ +

Utiliser exec() avec des littéraux

+ +

Il est aussi possible d'utiliser exec() sans créer d'objet {{jsxref("RegExp")}} explicite :

+ +
var matches = /(coucou \S+)/.exec('Ceci est un coucou monde !');
+console.log(matches[1]);
+
+ +

Cela affichera 'coucou monde !'.

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.exec")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/flags/index.html b/files/fr/web/javascript/reference/global_objects/regexp/flags/index.html deleted file mode 100644 index f03a085b92..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/flags/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: RegExp.prototype.flags -slug: Web/JavaScript/Reference/Global_Objects/RegExp/flags -tags: - - ECMAScript 2015 - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp - - polyfill -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/flags -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/flags ---- -
{{JSRef}}
- -

La propriété flags renvoie une chaîne de caractères contenant les drapeaux (flags) de l'objet {{jsxref("RegExp")}} auquel elle appartient.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-flags.html")}}
- - - -
{{js_property_attributes(0, 0, 1)}}
- -

Description

- -

Les drapeaux de la propriété flags sont rangés par ordre alphabétique de gauche à droite.

- -

Exemples

- -

Utiliser flags

- -
/toto/ig.flags;   // "gi"
-/truc/myu.flags;  // "muy"
-
- -

Prothèse d'émulation (polyfill)

- -
if (RegExp.prototype.flags === undefined) {
-  Object.defineProperty(RegExp.prototype, 'flags', {
-    configurable: true,
-    get: function() {
-      return this.toString().match(/[gimuy]*$/)[0];
-    }
-  });
-}
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.flags")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/flags/index.md b/files/fr/web/javascript/reference/global_objects/regexp/flags/index.md new file mode 100644 index 0000000000..f03a085b92 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/flags/index.md @@ -0,0 +1,79 @@ +--- +title: RegExp.prototype.flags +slug: Web/JavaScript/Reference/Global_Objects/RegExp/flags +tags: + - ECMAScript 2015 + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/flags +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/flags +--- +
{{JSRef}}
+ +

La propriété flags renvoie une chaîne de caractères contenant les drapeaux (flags) de l'objet {{jsxref("RegExp")}} auquel elle appartient.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-flags.html")}}
+ + + +
{{js_property_attributes(0, 0, 1)}}
+ +

Description

+ +

Les drapeaux de la propriété flags sont rangés par ordre alphabétique de gauche à droite.

+ +

Exemples

+ +

Utiliser flags

+ +
/toto/ig.flags;   // "gi"
+/truc/myu.flags;  // "muy"
+
+ +

Prothèse d'émulation (polyfill)

+ +
if (RegExp.prototype.flags === undefined) {
+  Object.defineProperty(RegExp.prototype, 'flags', {
+    configurable: true,
+    get: function() {
+      return this.toString().match(/[gimuy]*$/)[0];
+    }
+  });
+}
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.flags")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/global/index.html b/files/fr/web/javascript/reference/global_objects/regexp/global/index.html deleted file mode 100644 index 7702ec1769..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/global/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: RegExp.prototype.global -slug: Web/JavaScript/Reference/Global_Objects/RegExp/global -tags: - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/global -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/global ---- -
{{JSRef}}
- -

La propriété global indique si le marqueur (flag) "g" est utilisé pour l'expression rationnelle. global est une propriété accessible en lecture seule pour une expression rationnelle donnée.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-global.html")}}
- - - -
{{js_property_attributes(0,0,1)}}
- -

Description

- -

La valeur de global est un booléen. Elle vaut true si le flag "g" a été utilisé, false sinon. Le flag "g" indique que l'expression rationnelle recherchera toutes les correspondances possibles d'une chaîne de caractères. Lorsqu'une expression rationnelle utilise à la fois les marqueurs global et sticky (respectivement "g" et "y"), elle ignorera le marqueur global.

- -

Cette propriété ne peut pas être modifiée directement.

- -

Exemples

- -
var regex = new RegExp("toto", "g");
-
-console.log(regex.global); // true
-
-var str = 'totoexempletoto';
-var str1 = str.replace(regex, '');
-
-console.log(str1);  // affichera "exemple" dans la console
-
-var regex1 = new RegExp('toto');
-var str2 = str.replace(regex1, '');
-
-console.log(str2);  // affichera "exempletoto" dans la console
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : global est une propriété d'une instance de {{jsxref("RegExp")}} et non une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.2', 'RegExp.prototype.global')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.global', 'RegExp.prototype.global')}}{{Spec2('ES6')}}global est désormais un accesseur lié au prototype plutôt qu'une propriété de données liée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.global', 'RegExp.prototype.global')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.global")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/global/index.md b/files/fr/web/javascript/reference/global_objects/regexp/global/index.md new file mode 100644 index 0000000000..7702ec1769 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/global/index.md @@ -0,0 +1,89 @@ +--- +title: RegExp.prototype.global +slug: Web/JavaScript/Reference/Global_Objects/RegExp/global +tags: + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/global +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/global +--- +
{{JSRef}}
+ +

La propriété global indique si le marqueur (flag) "g" est utilisé pour l'expression rationnelle. global est une propriété accessible en lecture seule pour une expression rationnelle donnée.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-global.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Description

+ +

La valeur de global est un booléen. Elle vaut true si le flag "g" a été utilisé, false sinon. Le flag "g" indique que l'expression rationnelle recherchera toutes les correspondances possibles d'une chaîne de caractères. Lorsqu'une expression rationnelle utilise à la fois les marqueurs global et sticky (respectivement "g" et "y"), elle ignorera le marqueur global.

+ +

Cette propriété ne peut pas être modifiée directement.

+ +

Exemples

+ +
var regex = new RegExp("toto", "g");
+
+console.log(regex.global); // true
+
+var str = 'totoexempletoto';
+var str1 = str.replace(regex, '');
+
+console.log(str1);  // affichera "exemple" dans la console
+
+var regex1 = new RegExp('toto');
+var str2 = str.replace(regex1, '');
+
+console.log(str2);  // affichera "exempletoto" dans la console
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : global est une propriété d'une instance de {{jsxref("RegExp")}} et non une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.2', 'RegExp.prototype.global')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.global', 'RegExp.prototype.global')}}{{Spec2('ES6')}}global est désormais un accesseur lié au prototype plutôt qu'une propriété de données liée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.global', 'RegExp.prototype.global')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.global")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.html b/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.html deleted file mode 100644 index 22fecc736d..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: RegExp.prototype.ignoreCase -slug: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase -tags: - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/ignoreCase ---- -
{{JSRef}}
- -

La propriété ignoreCase indique si le drapeau (flag) "i" est utilisé ou non pour cette expression rationnelle. ignoreCase est une propriété accessible en lecture seule d'une instance d'expression rationnelle donnée.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-ignorecase.html")}}
- - - -
{{js_property_attributes(0,0,1)}}
- -

Description

- -

La valeur de ignoreCase est un booléen. Elle vaut true si le flag "i" a été utilisé et false sinon. Le drapeau "i" indique si la recherche de correspondances doit être sensible à la casse ou non.

- -

Cette propriété ne peut pas être modifiée directement.

- -

Exemples

- -
var regex = new RegExp("toto", "i");
-
-console.log(regex.ignoreCase); // true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : ignoreCase est une propriété d'une instance de {{jsxref("RegExp")}} et pas une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.3', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES6')}}ignoreCase est désormais une propriété du prototype sous forme d'accesseur plutôt qu'une propriété directe de l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.RegExp.ignoreCase")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.md b/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.md new file mode 100644 index 0000000000..22fecc736d --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/ignorecase/index.md @@ -0,0 +1,82 @@ +--- +title: RegExp.prototype.ignoreCase +slug: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +tags: + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/ignoreCase +--- +
{{JSRef}}
+ +

La propriété ignoreCase indique si le drapeau (flag) "i" est utilisé ou non pour cette expression rationnelle. ignoreCase est une propriété accessible en lecture seule d'une instance d'expression rationnelle donnée.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-ignorecase.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Description

+ +

La valeur de ignoreCase est un booléen. Elle vaut true si le flag "i" a été utilisé et false sinon. Le drapeau "i" indique si la recherche de correspondances doit être sensible à la casse ou non.

+ +

Cette propriété ne peut pas être modifiée directement.

+ +

Exemples

+ +
var regex = new RegExp("toto", "i");
+
+console.log(regex.ignoreCase); // true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : ignoreCase est une propriété d'une instance de {{jsxref("RegExp")}} et pas une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.3', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES6')}}ignoreCase est désormais une propriété du prototype sous forme d'accesseur plutôt qu'une propriété directe de l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.RegExp.ignoreCase")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/index.html b/files/fr/web/javascript/reference/global_objects/regexp/index.html deleted file mode 100644 index 720207ce42..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/index.html +++ /dev/null @@ -1,240 +0,0 @@ ---- -title: RegExp -slug: Web/JavaScript/Reference/Global_Objects/RegExp -tags: - - Constructeur - - Expressions rationnelles - - JavaScript - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp ---- -
{{JSRef}}
- -

Le constructeur RegExp crée un objet expression rationnelle pour la reconnaissance d'un modèle dans un texte.

- -

Pour une introduction aux expressions rationnelles, lire le chapitre Expressions rationnelles dans le Guide JavaScript.

- -
{{EmbedInteractiveExample("pages/js/regexp-constructor.html")}}
- -

Syntaxe

- -

Les notations littérales, par constructeur ou de base sont possibles :

- -
/modèle/marqueurs
-new RegExp(modèle[, marqueurs])
-RegExp(modèle[, marqueurs])
-
- -

Paramètres

- -
-
modèle
-
Le texte de l'expression rationnelle ou, à partir d'ES5, un autre objet ou littéral RegExp à copier. Ce motif peut inclure certains caractères spéciaux pour correspondre à un ensemble de valeurs plus large (qu'une simple chaîne littérale).
-
marqueurs
-
-

Si cet argument est utilisé, il indique les marqueurs à utiliser pour l'expression rationnelle. Ces valeurs remplaceront celles de l'objet à copier si modèle est un objet RegExp (lastIndex sera réinitialisé à 0 à partir d'ECMAScript 2015 / ES6). Cet argument est une chaîne de caractères qui peut contenir une combinaison des valeurs suivantes:

- -
-
g
-
recherche globale ; retrouve toutes les correspondances plutôt que de s'arrêter après la première.
-
i
-
la casse est ignorée. Si le marqueur u est également activé, les caractères Unicode équivalents pour la casse correspondent.
-
m
-
multiligne : les caractères de début et de fin (^ et $) sont traités comme travaillant sur des lignes multiples (i.e, ils correspondent au début et à la fin de chaque ligne (délimitée par \n ou \r), pas seulement au début ou à la fin de la chaîne d'entrée complète).
-
u
-
unicode : traite le modèle comme une séquence de points de code Unicode (voir également les chaînes binaires).
-
y
-
adhérence : n'établit de correspondance qu'à partir de l'indice dans la chaîne cible indiqué par la propriété lastIndex de l'expression rationnelle (et ne cherche pas à établir de correspondance à partir d'indices au delà).
-
s
-
"dotAll" : permet d'indiquer que . peut correspondre à un saut de ligne.
-
-
-
- -

Description

- -

Il existe deux façons de créer un objet RegExp : une notation littérale ou un constructeur. La notation littérale est délimitée par des barres obliques (slashes) tandis que le constructeur utilise des apostrophes. Ainsi, les expressions suivantes créent la même expression rationnelle :

- -
/ab+c/i;                   // notation littérale
-new RegExp('ab+c', 'i');   // constructeur
-new RegExp(/ab+c/, 'i');   // notation littérale dans un constructeur
-
- -

La notation littérale effectue la compilation de l'expression rationnelle lorsque l'expression est évaluée. Utilisez la notation littérale lorsque l'expression rationnelle reste constante. Par exemple, si vous utilisez la notation littérale pour construire une expression rationnelle utilisée dans une boucle, l'expression rationnelle ne sera pas recompilée à chaque itération.

- -

Le constructeur de l'objet expression rationnelle, par exemple new RegExp('ab+c'), effectue la compilation de l'expression rationnelle au moment de l'exécution. Utilisez la fonction constructeur quand vous savez que le modèle d'une expression rationnelle sera variable, ou si vous ne connaissez pas le modèle et que vous l'obtiendrez d'une autre source, telle qu'une saisie utilisateur.

- -

À partir d'ECMAScript 6, new RegExp(/ab+c/, 'i') ne déclenche plus d'exception {{jsxref("TypeError")}} ("can't supply flags when constructing one RegExp from another") lorsque le premier argument est une RegExp et que le second argument marqueurs est présent. Une nouvelle RegExp sera créée à la place à partir des arguments.

- -

Lorsqu'on utilise le constructeur, les règles normales d'échappement de chaîne (le fait de faire précéder d'un \ les caractères spéciaux à l'intérieur d'une chaîne) sont requises. Par exemple, les définitions suivantes sont équivalentes :

- -
var re = /\w+/;
-var re = new RegExp('\\w+');
-
- -

Propriétés

- -
-
{{jsxref("RegExp.prototype")}}
-
Cette propriété permet d'ajouter des propriétés à tous les objets qui sont des expressions rationnelles.
-
RegExp.length
-
La valeur de longueur pour le constructeur dont la valeur est 2.
-
{{jsxref("RegExp.@@species", "get RegExp[@@species]")}}
-
La fonction de construction utilisée pour créer les objets dérivés.
-
{{jsxref("RegExp.lastIndex")}}
-
L'indice à partir duquel rechercher la prochaine correspondance.
-
- -

Méthodes

- -

L'objet global RegExp ne possède pas de méthode propre. En revanche, il hérite de certaines méthodes via sa chaîne de prototypes.

- -

Le prototype de RegExp et les instances

- -

Propriétés

- -
{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/prototype', 'Propriétés')}}
- -

Méthodes

- -
{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/prototype', 'Méthodes')}}
- -

Exemples

- -

Utiliser une expression rationnelle pour modifier un format de données

- -

Dans le script suivant, on utilise la méthode {{jsxref("String.prototype.replace()", "replace()")}} de {{jsxref("String")}} pour effectuer une correspondance sur le prénom et le nom pour les inverser. On utilise des parenthèses capturantes pour pouvoir utiliser les correspondances dans la construction du résultat (avec $1 et $2).

- -
var re = /(\w+)\s(\w+)/;
-var chaîne = 'Alain Dupont';
-var nouvelleChaîne = chaîne.replace(re, '$2, $1');
-console.log(nouvelleChaîne);
-
- -

Cela affichera "Dupont, Alain".

- -

Utiliser une expression rationnelle pour découper des lignes avec différents sauts de ligne/fins de ligne

- -

La fin de ligne par défaut dépend de la plateforme (Unix, Windows, etc.). Cette méthode de découpage fournie permet de découper indépendamment de la plateforme utilisée.

- -
var texte = 'Un texte\net un autre\r\npuis ensuite\rla fin';
-var lignes = texte.split(/\r\n|\r|\n/);
-console.log(lignes); // affiche [ 'Un texte', 'et un autre', 'puis ensuite', 'la fin' ]
-
- -

On voit ici que l'ordre des modèles dans l'expression rationnelle importe.

- -

Utiliser une expression rationnelle sur plusieurs lignes

- -
var s = 'Et voici\nune autre ligne !';
-s.match(/voici.*ligne/);
-// Renvoie null
-s.match(/voici[^]*ligne/);
-// Renvoie ['voici\nune autre ligne']
-
- -

Utiliser une expression rationnelle avec le marqueur d'adhérence

- -

Cet exemple illustre comment on peut utiliser ce marqueur qui recherche une correspondance après {{jsxref("RegExp.prototype.lastIndex")}}.

- -
var str = '#toto#';
-var regex = /toto/y;
-
-regex.lastIndex; // 0
-regex.test(str); // true
-regex.lastIndex = 1;
-regex.test(str); // true
-regex.lastIndex = 5;
-regex.test(str); // false (lastIndex est pris en compte avec ce marqueur)
-regex.lastIndex; // 0 (réinitialisation suite à l'échec)
- -

Les expressions rationnelles et les caractères Unicode

- -

Comme mentionné ci-avant, les classes \w ou \W ne correspondent qu'à des caractères ASCII "a" à "z", "A" à "Z", "0" à "9" et "_". Pour effectuer des correspondances sur d'autres caractères (comme par exemple les caractères cyrilliques), on utilisera \uhhhh, où "hhhh" représente la valeur Unicode exprimée en hexadécimal. Cet exemple illustre comment il est possible de séparer les caractères Unicode d'un mot.

- -
var texte = 'Образец text на русском языке';
-var regex = /[\u0400-\u04FF]+/g;
-
-var corresp = regex.exec(texte);
-console.log(corresp[0]);      // affiche 'Образец'
-console.log(regex.lastIndex); // affiche '7'
-
-var corresp2 = regex.exec(texte);
-console.log(corresp2[0]);     // affiche 'на' (n'affiche pas text
-console.log(regex.lastIndex); // affiche '15'
-
-// et ainsi de suite
-
- -

Voici une ressource tierce pour obtenir les différents intervalles Unicode des différents alphabets : Regexp-unicode-block.

- -

Extraire un sous-domaine d'une URL

- -
var url = 'http://xxx.domaine.com';
-console.log(/[^.]+/.exec(url)[0].substr(7)); // affiche 'xxx'
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale. Implémentée avec JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.10', 'RegExp')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp-regular-expression-objects', 'RegExp')}}{{Spec2('ES6')}} -

Le constructeur RegExp ne renvoie plus d'exception lorsqu'il est utilisé avec un objet RegExp et que le second argument est utilisé. Ajout du marqueur d'adhérence et du marqueur Unicode.

-
{{SpecName('ESDraft', '#sec-regexp-regular-expression-objects', 'RegExp')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp")}}

- -

Notes spécifiques à Firefox

- -

À partir de Firefox 34, dans le cas où on utilise un groupe capturant avec des quantificateurs qui l'invalident, le texte correspondant au groupe est désormais undefined et non la chaîne vide :

- -
// Firefox 33 ou antérieur
-'x'.replace(/x(.)?/g, function(m, group) {
-  console.log("'group:" + group + "'");
-}); // 'group:'
-
-// Firefox 34 ou supérieur
-'x'.replace(/x(.)?/g, function(m, group) {
-  console.log("'group:" + group + "'");
-}); // 'group:undefined'
-
- -

Pour des raisons de compatibilité web, RegExp.$N renverra une chaîne vide au lieu de undefined ({{bug(1053944)}}).

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/index.md b/files/fr/web/javascript/reference/global_objects/regexp/index.md new file mode 100644 index 0000000000..720207ce42 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/index.md @@ -0,0 +1,240 @@ +--- +title: RegExp +slug: Web/JavaScript/Reference/Global_Objects/RegExp +tags: + - Constructeur + - Expressions rationnelles + - JavaScript + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp +--- +
{{JSRef}}
+ +

Le constructeur RegExp crée un objet expression rationnelle pour la reconnaissance d'un modèle dans un texte.

+ +

Pour une introduction aux expressions rationnelles, lire le chapitre Expressions rationnelles dans le Guide JavaScript.

+ +
{{EmbedInteractiveExample("pages/js/regexp-constructor.html")}}
+ +

Syntaxe

+ +

Les notations littérales, par constructeur ou de base sont possibles :

+ +
/modèle/marqueurs
+new RegExp(modèle[, marqueurs])
+RegExp(modèle[, marqueurs])
+
+ +

Paramètres

+ +
+
modèle
+
Le texte de l'expression rationnelle ou, à partir d'ES5, un autre objet ou littéral RegExp à copier. Ce motif peut inclure certains caractères spéciaux pour correspondre à un ensemble de valeurs plus large (qu'une simple chaîne littérale).
+
marqueurs
+
+

Si cet argument est utilisé, il indique les marqueurs à utiliser pour l'expression rationnelle. Ces valeurs remplaceront celles de l'objet à copier si modèle est un objet RegExp (lastIndex sera réinitialisé à 0 à partir d'ECMAScript 2015 / ES6). Cet argument est une chaîne de caractères qui peut contenir une combinaison des valeurs suivantes:

+ +
+
g
+
recherche globale ; retrouve toutes les correspondances plutôt que de s'arrêter après la première.
+
i
+
la casse est ignorée. Si le marqueur u est également activé, les caractères Unicode équivalents pour la casse correspondent.
+
m
+
multiligne : les caractères de début et de fin (^ et $) sont traités comme travaillant sur des lignes multiples (i.e, ils correspondent au début et à la fin de chaque ligne (délimitée par \n ou \r), pas seulement au début ou à la fin de la chaîne d'entrée complète).
+
u
+
unicode : traite le modèle comme une séquence de points de code Unicode (voir également les chaînes binaires).
+
y
+
adhérence : n'établit de correspondance qu'à partir de l'indice dans la chaîne cible indiqué par la propriété lastIndex de l'expression rationnelle (et ne cherche pas à établir de correspondance à partir d'indices au delà).
+
s
+
"dotAll" : permet d'indiquer que . peut correspondre à un saut de ligne.
+
+
+
+ +

Description

+ +

Il existe deux façons de créer un objet RegExp : une notation littérale ou un constructeur. La notation littérale est délimitée par des barres obliques (slashes) tandis que le constructeur utilise des apostrophes. Ainsi, les expressions suivantes créent la même expression rationnelle :

+ +
/ab+c/i;                   // notation littérale
+new RegExp('ab+c', 'i');   // constructeur
+new RegExp(/ab+c/, 'i');   // notation littérale dans un constructeur
+
+ +

La notation littérale effectue la compilation de l'expression rationnelle lorsque l'expression est évaluée. Utilisez la notation littérale lorsque l'expression rationnelle reste constante. Par exemple, si vous utilisez la notation littérale pour construire une expression rationnelle utilisée dans une boucle, l'expression rationnelle ne sera pas recompilée à chaque itération.

+ +

Le constructeur de l'objet expression rationnelle, par exemple new RegExp('ab+c'), effectue la compilation de l'expression rationnelle au moment de l'exécution. Utilisez la fonction constructeur quand vous savez que le modèle d'une expression rationnelle sera variable, ou si vous ne connaissez pas le modèle et que vous l'obtiendrez d'une autre source, telle qu'une saisie utilisateur.

+ +

À partir d'ECMAScript 6, new RegExp(/ab+c/, 'i') ne déclenche plus d'exception {{jsxref("TypeError")}} ("can't supply flags when constructing one RegExp from another") lorsque le premier argument est une RegExp et que le second argument marqueurs est présent. Une nouvelle RegExp sera créée à la place à partir des arguments.

+ +

Lorsqu'on utilise le constructeur, les règles normales d'échappement de chaîne (le fait de faire précéder d'un \ les caractères spéciaux à l'intérieur d'une chaîne) sont requises. Par exemple, les définitions suivantes sont équivalentes :

+ +
var re = /\w+/;
+var re = new RegExp('\\w+');
+
+ +

Propriétés

+ +
+
{{jsxref("RegExp.prototype")}}
+
Cette propriété permet d'ajouter des propriétés à tous les objets qui sont des expressions rationnelles.
+
RegExp.length
+
La valeur de longueur pour le constructeur dont la valeur est 2.
+
{{jsxref("RegExp.@@species", "get RegExp[@@species]")}}
+
La fonction de construction utilisée pour créer les objets dérivés.
+
{{jsxref("RegExp.lastIndex")}}
+
L'indice à partir duquel rechercher la prochaine correspondance.
+
+ +

Méthodes

+ +

L'objet global RegExp ne possède pas de méthode propre. En revanche, il hérite de certaines méthodes via sa chaîne de prototypes.

+ +

Le prototype de RegExp et les instances

+ +

Propriétés

+ +
{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/prototype', 'Propriétés')}}
+ +

Méthodes

+ +
{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/prototype', 'Méthodes')}}
+ +

Exemples

+ +

Utiliser une expression rationnelle pour modifier un format de données

+ +

Dans le script suivant, on utilise la méthode {{jsxref("String.prototype.replace()", "replace()")}} de {{jsxref("String")}} pour effectuer une correspondance sur le prénom et le nom pour les inverser. On utilise des parenthèses capturantes pour pouvoir utiliser les correspondances dans la construction du résultat (avec $1 et $2).

+ +
var re = /(\w+)\s(\w+)/;
+var chaîne = 'Alain Dupont';
+var nouvelleChaîne = chaîne.replace(re, '$2, $1');
+console.log(nouvelleChaîne);
+
+ +

Cela affichera "Dupont, Alain".

+ +

Utiliser une expression rationnelle pour découper des lignes avec différents sauts de ligne/fins de ligne

+ +

La fin de ligne par défaut dépend de la plateforme (Unix, Windows, etc.). Cette méthode de découpage fournie permet de découper indépendamment de la plateforme utilisée.

+ +
var texte = 'Un texte\net un autre\r\npuis ensuite\rla fin';
+var lignes = texte.split(/\r\n|\r|\n/);
+console.log(lignes); // affiche [ 'Un texte', 'et un autre', 'puis ensuite', 'la fin' ]
+
+ +

On voit ici que l'ordre des modèles dans l'expression rationnelle importe.

+ +

Utiliser une expression rationnelle sur plusieurs lignes

+ +
var s = 'Et voici\nune autre ligne !';
+s.match(/voici.*ligne/);
+// Renvoie null
+s.match(/voici[^]*ligne/);
+// Renvoie ['voici\nune autre ligne']
+
+ +

Utiliser une expression rationnelle avec le marqueur d'adhérence

+ +

Cet exemple illustre comment on peut utiliser ce marqueur qui recherche une correspondance après {{jsxref("RegExp.prototype.lastIndex")}}.

+ +
var str = '#toto#';
+var regex = /toto/y;
+
+regex.lastIndex; // 0
+regex.test(str); // true
+regex.lastIndex = 1;
+regex.test(str); // true
+regex.lastIndex = 5;
+regex.test(str); // false (lastIndex est pris en compte avec ce marqueur)
+regex.lastIndex; // 0 (réinitialisation suite à l'échec)
+ +

Les expressions rationnelles et les caractères Unicode

+ +

Comme mentionné ci-avant, les classes \w ou \W ne correspondent qu'à des caractères ASCII "a" à "z", "A" à "Z", "0" à "9" et "_". Pour effectuer des correspondances sur d'autres caractères (comme par exemple les caractères cyrilliques), on utilisera \uhhhh, où "hhhh" représente la valeur Unicode exprimée en hexadécimal. Cet exemple illustre comment il est possible de séparer les caractères Unicode d'un mot.

+ +
var texte = 'Образец text на русском языке';
+var regex = /[\u0400-\u04FF]+/g;
+
+var corresp = regex.exec(texte);
+console.log(corresp[0]);      // affiche 'Образец'
+console.log(regex.lastIndex); // affiche '7'
+
+var corresp2 = regex.exec(texte);
+console.log(corresp2[0]);     // affiche 'на' (n'affiche pas text
+console.log(regex.lastIndex); // affiche '15'
+
+// et ainsi de suite
+
+ +

Voici une ressource tierce pour obtenir les différents intervalles Unicode des différents alphabets : Regexp-unicode-block.

+ +

Extraire un sous-domaine d'une URL

+ +
var url = 'http://xxx.domaine.com';
+console.log(/[^.]+/.exec(url)[0].substr(7)); // affiche 'xxx'
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale. Implémentée avec JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.10', 'RegExp')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp-regular-expression-objects', 'RegExp')}}{{Spec2('ES6')}} +

Le constructeur RegExp ne renvoie plus d'exception lorsqu'il est utilisé avec un objet RegExp et que le second argument est utilisé. Ajout du marqueur d'adhérence et du marqueur Unicode.

+
{{SpecName('ESDraft', '#sec-regexp-regular-expression-objects', 'RegExp')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp")}}

+ +

Notes spécifiques à Firefox

+ +

À partir de Firefox 34, dans le cas où on utilise un groupe capturant avec des quantificateurs qui l'invalident, le texte correspondant au groupe est désormais undefined et non la chaîne vide :

+ +
// Firefox 33 ou antérieur
+'x'.replace(/x(.)?/g, function(m, group) {
+  console.log("'group:" + group + "'");
+}); // 'group:'
+
+// Firefox 34 ou supérieur
+'x'.replace(/x(.)?/g, function(m, group) {
+  console.log("'group:" + group + "'");
+}); // 'group:undefined'
+
+ +

Pour des raisons de compatibilité web, RegExp.$N renverra une chaîne vide au lieu de undefined ({{bug(1053944)}}).

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/input/index.html b/files/fr/web/javascript/reference/global_objects/regexp/input/index.html deleted file mode 100644 index 15935f9bd8..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/input/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: RegExp.input ($_) -slug: Web/JavaScript/Reference/Global_Objects/RegExp/input -tags: - - JavaScript - - Non-standard - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/input -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/input ---- -
{{JSRef}} {{non-standard_header}}
- -

La propriété non-standard input est une propriété statique de l'expression rationnelle qui contient la chaîne de caractères sur laquelle est effectuée la recherche de correspondances. RegExp.$_ est un alias de cette propriété.

- -

Syntaxe

- -
RegExp.input
-RegExp.$_
-
- -

Description

- -

La propriété input est statique. Ce n'est pas la propriété d'une instance d'expression rationnelle. Cette propriété doit toujours être utilisée avec la syntaxe RegExp.input ou RegExp.$_.

- -

La valeur de la propriété input est modifiée à chaque fois que la chaîne sur laquelle on recherche est modifiée et qu'il y a une correspondance.

- -

Exemples

- -

Utiliser input et $_

- -
var re = /coucou/g;
-re.test("coucou toi !");
-RegExp.input;         // "coucou toi !"
-re.test("toto");      // nouveau test, pas de correspondance
-RegExp.$_;            // "coucou toi !"
-re.test("coucou monde !"); // nouveau test avec correspondance
-RegExp.$_;            // "coucou monde !"
-
- -

Spécifications

- -

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.input")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/input/index.md b/files/fr/web/javascript/reference/global_objects/regexp/input/index.md new file mode 100644 index 0000000000..15935f9bd8 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/input/index.md @@ -0,0 +1,58 @@ +--- +title: RegExp.input ($_) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/input +tags: + - JavaScript + - Non-standard + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/input +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/input +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété non-standard input est une propriété statique de l'expression rationnelle qui contient la chaîne de caractères sur laquelle est effectuée la recherche de correspondances. RegExp.$_ est un alias de cette propriété.

+ +

Syntaxe

+ +
RegExp.input
+RegExp.$_
+
+ +

Description

+ +

La propriété input est statique. Ce n'est pas la propriété d'une instance d'expression rationnelle. Cette propriété doit toujours être utilisée avec la syntaxe RegExp.input ou RegExp.$_.

+ +

La valeur de la propriété input est modifiée à chaque fois que la chaîne sur laquelle on recherche est modifiée et qu'il y a une correspondance.

+ +

Exemples

+ +

Utiliser input et $_

+ +
var re = /coucou/g;
+re.test("coucou toi !");
+RegExp.input;         // "coucou toi !"
+re.test("toto");      // nouveau test, pas de correspondance
+RegExp.$_;            // "coucou toi !"
+re.test("coucou monde !"); // nouveau test avec correspondance
+RegExp.$_;            // "coucou monde !"
+
+ +

Spécifications

+ +

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.input")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.html b/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.html deleted file mode 100644 index e5bc84ca24..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: regExp.lastIndex -slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex -tags: - - JavaScript - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastIndex ---- -
{{JSRef}}
- -

La propriété lastIndex est un entier en lecture/écriture qui permet de définir l'indice (position) à partir duquel chercher la prochaine correspondance pour une instance d'expression rationnelle donnée.

- -
{{EmbedInteractiveExample("pages/js/regexp-lastindex.html")}}
- - - -
{{js_property_attributes(1,0,0)}}
- -

Syntaxe

- -
regExpObj.lastIndex
-
- -

Description

- -

Cette propriété n'est définie que si l'instance d'expression rationnelle utilise le marqueur (flag) "g" pour effectuer une recherche globale ou le marqueur "y" afin d'effectuer une recherche adhérente. Les règles suivantes s'appliquent :

- - - -

Exemples

- -

Si on a la séquence d'instructions suivante :

- -
var re = /(hi)?/g;
-
- -

Correspond à la chaîne vide.

- -
console.log(re.exec('hi'));
-console.log(re.lastIndex);
-
- -

Renvoie ["hi", "hi"] avec lastIndex égal à 2.

- -
console.log(re.exec('hi'));
-console.log(re.lastIndex);
-
- -

Renvoie ["", undefined], un tableau dont le premier élément est la chaîne vide car lastIndex valait 2 (et vaut toujours 2) et "hi" était de longueur 2.

- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. JavaScript 1.5 : lastIndex est une propriété d'une instance de RegExp et n'est pas une propriété directe de RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.5', 'RegExp.lastIndex')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.lastIndex")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.md b/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.md new file mode 100644 index 0000000000..e5bc84ca24 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.md @@ -0,0 +1,103 @@ +--- +title: regExp.lastIndex +slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex +tags: + - JavaScript + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastIndex +--- +
{{JSRef}}
+ +

La propriété lastIndex est un entier en lecture/écriture qui permet de définir l'indice (position) à partir duquel chercher la prochaine correspondance pour une instance d'expression rationnelle donnée.

+ +
{{EmbedInteractiveExample("pages/js/regexp-lastindex.html")}}
+ + + +
{{js_property_attributes(1,0,0)}}
+ +

Syntaxe

+ +
regExpObj.lastIndex
+
+ +

Description

+ +

Cette propriété n'est définie que si l'instance d'expression rationnelle utilise le marqueur (flag) "g" pour effectuer une recherche globale ou le marqueur "y" afin d'effectuer une recherche adhérente. Les règles suivantes s'appliquent :

+ + + +

Exemples

+ +

Si on a la séquence d'instructions suivante :

+ +
var re = /(hi)?/g;
+
+ +

Correspond à la chaîne vide.

+ +
console.log(re.exec('hi'));
+console.log(re.lastIndex);
+
+ +

Renvoie ["hi", "hi"] avec lastIndex égal à 2.

+ +
console.log(re.exec('hi'));
+console.log(re.lastIndex);
+
+ +

Renvoie ["", undefined], un tableau dont le premier élément est la chaîne vide car lastIndex valait 2 (et vaut toujours 2) et "hi" était de longueur 2.

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. JavaScript 1.5 : lastIndex est une propriété d'une instance de RegExp et n'est pas une propriété directe de RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.5', 'RegExp.lastIndex')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.lastIndex")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.html b/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.html deleted file mode 100644 index 08e0e2ce91..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: RegExp.lastMatch ($&) -slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch -tags: - - JavaScript - - Non-standard - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastMatch ---- -
{{JSRef}} {{non-standard_header}}
- -

La propriété non-standard lastMatch est une propriété statique en lecture seule pour les expressions rationnelles qui contient les caractères de la dernière correspondance. RegExp.$& est un alias pour cette propriété.

- -

Syntaxe

- -
RegExp.lastMatch
-RegExp['$&']
-
- -

Description

- -

La propriété lastMatch est une propriété statique, ce n'est pas une propriété pour chaque objet qui représente une expression rationnelle. Cette propriété doit donc toujours être utilisée avec la syntaxe RegExp.lastMatch ou RegExp['$&'].

- -

La valeur de la propriété lastMatch n'est accessible qu'en lecture seule et est modifiée à chaque fois qu'une correspondance est trouvée.

- -

Il n'est pas possible d'utiliser l'alias avec la notation utilisant le point pour accéder à la propriété (RegExp.$&) car le parseur attend une expression avec "&" dans ce cas, ce qui provoque une exception {{jsxref("SyntaxError")}}. Pour utiliser l'alias, on prendra donc la notation utilisant les crochets.

- -

Exemples

- -

Utiliser lastMatch et $&

- -
var re = /coucou/g;
-re.test("coucou toi!");
-RegExp.lastMatch; // "coucou"
-RegExp['$&'];     // "coucou"
-
- -

Spécifications

- -

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.lastMatch")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.md b/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.md new file mode 100644 index 0000000000..08e0e2ce91 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/lastmatch/index.md @@ -0,0 +1,57 @@ +--- +title: RegExp.lastMatch ($&) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +tags: + - JavaScript + - Non-standard + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastMatch +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété non-standard lastMatch est une propriété statique en lecture seule pour les expressions rationnelles qui contient les caractères de la dernière correspondance. RegExp.$& est un alias pour cette propriété.

+ +

Syntaxe

+ +
RegExp.lastMatch
+RegExp['$&']
+
+ +

Description

+ +

La propriété lastMatch est une propriété statique, ce n'est pas une propriété pour chaque objet qui représente une expression rationnelle. Cette propriété doit donc toujours être utilisée avec la syntaxe RegExp.lastMatch ou RegExp['$&'].

+ +

La valeur de la propriété lastMatch n'est accessible qu'en lecture seule et est modifiée à chaque fois qu'une correspondance est trouvée.

+ +

Il n'est pas possible d'utiliser l'alias avec la notation utilisant le point pour accéder à la propriété (RegExp.$&) car le parseur attend une expression avec "&" dans ce cas, ce qui provoque une exception {{jsxref("SyntaxError")}}. Pour utiliser l'alias, on prendra donc la notation utilisant les crochets.

+ +

Exemples

+ +

Utiliser lastMatch et $&

+ +
var re = /coucou/g;
+re.test("coucou toi!");
+RegExp.lastMatch; // "coucou"
+RegExp['$&'];     // "coucou"
+
+ +

Spécifications

+ +

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.lastMatch")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.html b/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.html deleted file mode 100644 index c2df70f393..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: RegExp.lastParen ($+) -slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastParen -tags: - - JavaScript - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastParen -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastParen ---- -
{{JSRef}} {{non-standard_header}}
- -

La propriété lastParen est une propriété statique accessible en lecture seule qui contient la dernière correspondance enregistrée dans un groupe (entre parenthèse) si jamais elle existe. RegExp.$+ est un alias pour cette propriété.

- -

Syntaxe

- -
RegExp.lastParen
-RegExp['$+']
-
- -

Description

- -

La propriété lastParen est une propriété statique, ce n'est pas une propriété liée à chaque objet. Il faut donc toujours utiliser la syntaxe RegExp.lastParen ou RegExp['$+'].

- -

La valeur de la propriété lastParen n'est accessible qu'en lecture seule et est modifiée automatiquement à chaque fois qu'il y a une correspondance.

- -

Cet alias ne peut pas être utilisé avec la notation utilisant le point pour l'accès aux propriétés (RegExp.$+). En effet, le parseur attend une expression avec "+", dans ce cas, une exception {{jsxref("SyntaxError")}} est levée. Pour utiliser cette notation raccourcie, on utilisera la notation avec les crochets.

- -

Exemples

- -

Utiliser lastParen et $+

- -
var re = /(coucou)/g;
-re.test("coucou toi !");
-RegExp.lastParen; // "coucou"
-RegExp['$+'];     // "coucou"
-
- -

Spécifications

- -

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.lastParen")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.md b/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.md new file mode 100644 index 0000000000..c2df70f393 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/lastparen/index.md @@ -0,0 +1,56 @@ +--- +title: RegExp.lastParen ($+) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastParen +tags: + - JavaScript + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastParen +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastParen +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété lastParen est une propriété statique accessible en lecture seule qui contient la dernière correspondance enregistrée dans un groupe (entre parenthèse) si jamais elle existe. RegExp.$+ est un alias pour cette propriété.

+ +

Syntaxe

+ +
RegExp.lastParen
+RegExp['$+']
+
+ +

Description

+ +

La propriété lastParen est une propriété statique, ce n'est pas une propriété liée à chaque objet. Il faut donc toujours utiliser la syntaxe RegExp.lastParen ou RegExp['$+'].

+ +

La valeur de la propriété lastParen n'est accessible qu'en lecture seule et est modifiée automatiquement à chaque fois qu'il y a une correspondance.

+ +

Cet alias ne peut pas être utilisé avec la notation utilisant le point pour l'accès aux propriétés (RegExp.$+). En effet, le parseur attend une expression avec "+", dans ce cas, une exception {{jsxref("SyntaxError")}} est levée. Pour utiliser cette notation raccourcie, on utilisera la notation avec les crochets.

+ +

Exemples

+ +

Utiliser lastParen et $+

+ +
var re = /(coucou)/g;
+re.test("coucou toi !");
+RegExp.lastParen; // "coucou"
+RegExp['$+'];     // "coucou"
+
+ +

Spécifications

+ +

Cette propriété n'est pas standard. Elle ne fait partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.lastParen")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.html b/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.html deleted file mode 100644 index e5a3bda79d..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: RegExp.leftContext ($`) -slug: Web/JavaScript/Reference/Global_Objects/RegExp/leftContext -tags: - - JavaScript - - Non-standard - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/leftContext -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/leftContext ---- -
{{JSRef}} {{non-standard_header}}
- -

La propriété non-standard leftContext est une propriété statique accessible uniquement en lecture. Cette propriété liée aux expressions rationnelles contient la sous-chaîne qui précède la correspondance la plus récente. RegExp.$` est un alias pour cette propriété.

- -

Syntaxe

- -
RegExp.leftContext
-RegExp['$`']
-
- -

Description

- -

La propriété leftContext est une propriété statique, elle n'est donc pas distincte entre les différents objets représentants les expressions rationnelles. Il faut donc toujours utiliser la syntaxe RegExp.leftContext ou RegExp['$`'].

- -

La valeur de la propriété leftContext n'est accessible uniquement qu'en lecture. Elle est modifiée par le moteur à chaque fois qu'une nouvelle correspondance est trouvée.

- -

L'alias ne peut pas être utilisé avec la notation utilisant le point (RegExp.$`). En effet, le parseur attend un gabarit de chaîne à la suite de l'accent grave. Si on utilise le point, on aura donc une exception {{jsxref("SyntaxError")}}. Pour cet alias, on utilisera la notation à base de crochets.

- -

Exemples

- -
var re = /monde/g;
-re.test("coucou monde !");
-RegExp.leftContext; // "coucou "
-RegExp['$`'];       // "coucou "
-
- -

Spécifications

- -

Cette propriété n'est pas standard et ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.leftContext")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.md b/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.md new file mode 100644 index 0000000000..e5a3bda79d --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/leftcontext/index.md @@ -0,0 +1,55 @@ +--- +title: RegExp.leftContext ($`) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/leftContext +tags: + - JavaScript + - Non-standard + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/leftContext +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/leftContext +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété non-standard leftContext est une propriété statique accessible uniquement en lecture. Cette propriété liée aux expressions rationnelles contient la sous-chaîne qui précède la correspondance la plus récente. RegExp.$` est un alias pour cette propriété.

+ +

Syntaxe

+ +
RegExp.leftContext
+RegExp['$`']
+
+ +

Description

+ +

La propriété leftContext est une propriété statique, elle n'est donc pas distincte entre les différents objets représentants les expressions rationnelles. Il faut donc toujours utiliser la syntaxe RegExp.leftContext ou RegExp['$`'].

+ +

La valeur de la propriété leftContext n'est accessible uniquement qu'en lecture. Elle est modifiée par le moteur à chaque fois qu'une nouvelle correspondance est trouvée.

+ +

L'alias ne peut pas être utilisé avec la notation utilisant le point (RegExp.$`). En effet, le parseur attend un gabarit de chaîne à la suite de l'accent grave. Si on utilise le point, on aura donc une exception {{jsxref("SyntaxError")}}. Pour cet alias, on utilisera la notation à base de crochets.

+ +

Exemples

+ +
var re = /monde/g;
+re.test("coucou monde !");
+RegExp.leftContext; // "coucou "
+RegExp['$`'];       // "coucou "
+
+ +

Spécifications

+ +

Cette propriété n'est pas standard et ne fait partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.leftContext")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.html b/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.html deleted file mode 100644 index 3c6d1df46a..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: RegExp.prototype.multiline -slug: Web/JavaScript/Reference/Global_Objects/RegExp/multiline -tags: - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/multiline -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/multiline ---- -
{{JSRef}}
- -

La propriété multiline indique si le drapeau (flag) "m" a été utilisé ou non pour l'expression rationnelle. multiline est une propriété liée à l'instance, accessible en lecture seule.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-multiline.html", "taller")}}
- - - -
{{js_property_attributes(0,0,1)}}
- -

Description

- -

La valeur de multiline est un booléen. Elle vaut true si le drapeau "m" a été utilisé et false sinon. Le flag "m" indique qu'une chaine de caractères qui s'étend sur plusieurs lignes doit être traitée comme une série de ligne. Ainsi, si "m" est utilisé, "^" et "$" ne correspondent plus au début et à la fin de la chaîne mais aux débuts et aux fins de chaque ligne de la chaîne.

- -

Cette propriété ne peut pas être modifiée directement.

- -

Exemples

- -
var regex = new RegExp("toto", "m");
-
-console.log(regex.multiline); // true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : multiline est une propriété liée à l'instance de {{jsxref("RegExp")}} et non à l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.4', 'RegExp.prototype.multiline')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.multiline', 'RegExp.prototype.multiline')}}{{Spec2('ES6')}}multiline est désormais un propriété du prototype sous forme d'accesseur plutôt qu'une propriété directement liée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.multiline', 'RegExp.prototype.multiline')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.multiline")}}

- -

Notes de compatibilité

- - - -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.md b/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.md new file mode 100644 index 0000000000..3c6d1df46a --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/multiline/index.md @@ -0,0 +1,86 @@ +--- +title: RegExp.prototype.multiline +slug: Web/JavaScript/Reference/Global_Objects/RegExp/multiline +tags: + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/multiline +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/multiline +--- +
{{JSRef}}
+ +

La propriété multiline indique si le drapeau (flag) "m" a été utilisé ou non pour l'expression rationnelle. multiline est une propriété liée à l'instance, accessible en lecture seule.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-multiline.html", "taller")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Description

+ +

La valeur de multiline est un booléen. Elle vaut true si le drapeau "m" a été utilisé et false sinon. Le flag "m" indique qu'une chaine de caractères qui s'étend sur plusieurs lignes doit être traitée comme une série de ligne. Ainsi, si "m" est utilisé, "^" et "$" ne correspondent plus au début et à la fin de la chaîne mais aux débuts et aux fins de chaque ligne de la chaîne.

+ +

Cette propriété ne peut pas être modifiée directement.

+ +

Exemples

+ +
var regex = new RegExp("toto", "m");
+
+console.log(regex.multiline); // true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : multiline est une propriété liée à l'instance de {{jsxref("RegExp")}} et non à l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.4', 'RegExp.prototype.multiline')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.multiline', 'RegExp.prototype.multiline')}}{{Spec2('ES6')}}multiline est désormais un propriété du prototype sous forme d'accesseur plutôt qu'une propriété directement liée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.multiline', 'RegExp.prototype.multiline')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.multiline")}}

+ +

Notes de compatibilité

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/n/index.html b/files/fr/web/javascript/reference/global_objects/regexp/n/index.html deleted file mode 100644 index 639b98d059..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/n/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: RegExp.$1-$9 -slug: Web/JavaScript/Reference/Global_Objects/RegExp/n -tags: - - JavaScript - - Non-standard - - Propriété - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/n -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/n ---- -
{{JSRef}} {{non-standard_header}}
- -

Les propriétés non-standard $1, $2, $3, $4, $5, $6, $7, $8, $9 sont des propriétés statiques accessibles en lecture qui contiennent les différents groupes capturés par une expression rationnelle.

- -

Syntaxe

- -
RegExp.$1
-RegExp.$2
-RegExp.$3
-RegExp.$4
-RegExp.$5
-RegExp.$6
-RegExp.$7
-RegExp.$8
-RegExp.$9
-
- -

Description

- -

Les propriétés $1, ..., $9 sont des propriétés statiques. Ce ne sont pas des propriétés rattachées à une expression rationnelle donnée. Pour cette raison, on utilisera toujours la syntaxe RegExp.$1, ..., RegExp.$9.

- -

Les valeurs de ces propriétés ne sont accessibles qu'en lecture et sont modifiées par le moteur à chaque fois qu'une nouvelle correspondance est trouvée.

- -

Le nombre de groupe d'une expression rationnelle n'est pas limité. Cependant, l'objet RegExp ne contient que les neufs premiers groupes. Pour accéder à chacun des groupes liés à une expression rationnelle donnée, on pourra utiliser les indices du tableau relevant les correspondances.

- -

Ces propriétés peuvent être utilisées pour le texte de remplacement de la méthode {{jsxref("String.replace")}}. Avec cette méthode, on ne préfixera pas les valeurs par RegExp (voir l'exemple ci-après), lorsque les parenthèses groupantes ne sont pas utilisées dans l'expression, $n sera interprété littérallement (avec n un entier positif).

- -

Exemples

- -

Dans le script qui suit, on utilise {{jsxref("String.prototype.replace()", "replace()")}} d'une instance de {{jsxref("String")}} pour inverser le premier mot et le dernier et placer une virgule entre. Le script utilise $1 et $2 pour faire référence aux groupes de l'expression rationnelle :

- -
var re = /(\w+)\s(\w+)/;
-var str = 'Jean Biche';
-str.replace(re, '$2, $1'); // "Biche, Jean"
-RegExp.$1; // "Jean"
-RegExp.$2; // "Biche"
-
- -

Spécifications

- -

Ces propriétés ne sont pas standard, elles ne font partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.n")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/n/index.md b/files/fr/web/javascript/reference/global_objects/regexp/n/index.md new file mode 100644 index 0000000000..639b98d059 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/n/index.md @@ -0,0 +1,67 @@ +--- +title: RegExp.$1-$9 +slug: Web/JavaScript/Reference/Global_Objects/RegExp/n +tags: + - JavaScript + - Non-standard + - Propriété + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/n +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/n +--- +
{{JSRef}} {{non-standard_header}}
+ +

Les propriétés non-standard $1, $2, $3, $4, $5, $6, $7, $8, $9 sont des propriétés statiques accessibles en lecture qui contiennent les différents groupes capturés par une expression rationnelle.

+ +

Syntaxe

+ +
RegExp.$1
+RegExp.$2
+RegExp.$3
+RegExp.$4
+RegExp.$5
+RegExp.$6
+RegExp.$7
+RegExp.$8
+RegExp.$9
+
+ +

Description

+ +

Les propriétés $1, ..., $9 sont des propriétés statiques. Ce ne sont pas des propriétés rattachées à une expression rationnelle donnée. Pour cette raison, on utilisera toujours la syntaxe RegExp.$1, ..., RegExp.$9.

+ +

Les valeurs de ces propriétés ne sont accessibles qu'en lecture et sont modifiées par le moteur à chaque fois qu'une nouvelle correspondance est trouvée.

+ +

Le nombre de groupe d'une expression rationnelle n'est pas limité. Cependant, l'objet RegExp ne contient que les neufs premiers groupes. Pour accéder à chacun des groupes liés à une expression rationnelle donnée, on pourra utiliser les indices du tableau relevant les correspondances.

+ +

Ces propriétés peuvent être utilisées pour le texte de remplacement de la méthode {{jsxref("String.replace")}}. Avec cette méthode, on ne préfixera pas les valeurs par RegExp (voir l'exemple ci-après), lorsque les parenthèses groupantes ne sont pas utilisées dans l'expression, $n sera interprété littérallement (avec n un entier positif).

+ +

Exemples

+ +

Dans le script qui suit, on utilise {{jsxref("String.prototype.replace()", "replace()")}} d'une instance de {{jsxref("String")}} pour inverser le premier mot et le dernier et placer une virgule entre. Le script utilise $1 et $2 pour faire référence aux groupes de l'expression rationnelle :

+ +
var re = /(\w+)\s(\w+)/;
+var str = 'Jean Biche';
+str.replace(re, '$2, $1'); // "Biche, Jean"
+RegExp.$1; // "Jean"
+RegExp.$2; // "Biche"
+
+ +

Spécifications

+ +

Ces propriétés ne sont pas standard, elles ne font partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.n")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.html b/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.html deleted file mode 100644 index 8d7aecc28e..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: RegExp.rightContext ($') -slug: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext -tags: - - JavaScript - - Non-standard - - Propriété - - Reference - - RegExp - - Regular Expressions -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/rightContext ---- -
{{JSRef}} {{non-standard_header}}
- -

La propriété non-standard rightContext est une propriété statique, accessible uniquement en lecture, qui contient la sous-chaîne suivant la correspondance la plus récente. RegExp.$' est un alias pour cette propriété.

- -

Syntaxe

- -
RegExp.rightContext
-RegExp["$'"]
-
- -

Description

- -

La propriété rightContext est une propriété statique et n'est pas liée à une instance d'expression rationnelle. Pour cette raison, il faut toujours utiliser la syntaxe RegExp.rightContext ou RegExp["$'"].

- -

La valeur de la propriété rightContext n'est accessible qu'en lecture. Le moteur la modifie à chaque fois qu'une nouvelle correspondance est trouvée.

- -

L'alias ne peut pas être utilisé avec la syntaxe utilisant le point (RegExp.$'). En effet, l'analyseur (parser) attend un début de chaîne du fait de la simple quote, ce qui provoquerait une exception {{jsxref("SyntaxError")}}. Il faut donc utiliser la notation à base de crochets.

- -

Exemples

- -
var re = /coucou/g;
-re.test("coucou monde !");
-RegExp.rightContext; // " monde !"
-RegExp["$'"];       // " monde !"
-
- -

Spécifications

- -

Cette propriété n'est pas standard, elle ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.rightContext")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.md b/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.md new file mode 100644 index 0000000000..8d7aecc28e --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/rightcontext/index.md @@ -0,0 +1,56 @@ +--- +title: RegExp.rightContext ($') +slug: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext +tags: + - JavaScript + - Non-standard + - Propriété + - Reference + - RegExp + - Regular Expressions +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/rightContext +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété non-standard rightContext est une propriété statique, accessible uniquement en lecture, qui contient la sous-chaîne suivant la correspondance la plus récente. RegExp.$' est un alias pour cette propriété.

+ +

Syntaxe

+ +
RegExp.rightContext
+RegExp["$'"]
+
+ +

Description

+ +

La propriété rightContext est une propriété statique et n'est pas liée à une instance d'expression rationnelle. Pour cette raison, il faut toujours utiliser la syntaxe RegExp.rightContext ou RegExp["$'"].

+ +

La valeur de la propriété rightContext n'est accessible qu'en lecture. Le moteur la modifie à chaque fois qu'une nouvelle correspondance est trouvée.

+ +

L'alias ne peut pas être utilisé avec la syntaxe utilisant le point (RegExp.$'). En effet, l'analyseur (parser) attend un début de chaîne du fait de la simple quote, ce qui provoquerait une exception {{jsxref("SyntaxError")}}. Il faut donc utiliser la notation à base de crochets.

+ +

Exemples

+ +
var re = /coucou/g;
+re.test("coucou monde !");
+RegExp.rightContext; // " monde !"
+RegExp["$'"];       // " monde !"
+
+ +

Spécifications

+ +

Cette propriété n'est pas standard, elle ne fait partie d'aucune spécification.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.rightContext")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/source/index.html b/files/fr/web/javascript/reference/global_objects/regexp/source/index.html deleted file mode 100644 index 7b5437e8cc..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/source/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: RegExp.prototype.source -slug: Web/JavaScript/Reference/Global_Objects/RegExp/source -tags: - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/source -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/source ---- -
{{JSRef}}
- -

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.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-source.html")}}
- - - -
{{js_property_attributes(0,0,1)}}
- -

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ÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : source est une propriété de l'instance de {{jsxref("RegExp")}}, ce n'est pas une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.1', 'RegExp.prototype.source')}}{{Spec2('ES5.1')}}source renvoie désormais "(?:)" (et non "") pour les expressions vides. La définition du comportement pour les échappements a été ajoutée.
{{SpecName('ES6', '#sec-get-regexp.prototype.source', 'RegExp.prototype.source')}}{{Spec2('ES6')}}source est désormais un accesseur lié au prototype plutôt qu'une propriété directement rattachée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.source', 'RegExp.prototype.source')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.source")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/source/index.md b/files/fr/web/javascript/reference/global_objects/regexp/source/index.md new file mode 100644 index 0000000000..7b5437e8cc --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/source/index.md @@ -0,0 +1,81 @@ +--- +title: RegExp.prototype.source +slug: Web/JavaScript/Reference/Global_Objects/RegExp/source +tags: + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/source +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/source +--- +
{{JSRef}}
+ +

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.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-source.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

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ÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2. Avec JavaScript 1.5 : source est une propriété de l'instance de {{jsxref("RegExp")}}, ce n'est pas une propriété de l'objet RegExp.
{{SpecName('ES5.1', '#sec-15.10.7.1', 'RegExp.prototype.source')}}{{Spec2('ES5.1')}}source renvoie désormais "(?:)" (et non "") pour les expressions vides. La définition du comportement pour les échappements a été ajoutée.
{{SpecName('ES6', '#sec-get-regexp.prototype.source', 'RegExp.prototype.source')}}{{Spec2('ES6')}}source est désormais un accesseur lié au prototype plutôt qu'une propriété directement rattachée à l'instance.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.source', 'RegExp.prototype.source')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.source")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.html b/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.html deleted file mode 100644 index ab261c0d51..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: RegExp.prototype.sticky -slug: Web/JavaScript/Reference/Global_Objects/RegExp/sticky -tags: - - ECMAScript 2015 - - Expressions rationnelles - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/sticky -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/sticky ---- -
{{JSRef}}
- -

La propriété sticky (adhérante) permet de déterminer si la recherche s'effectue uniquement à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} lié à l'expression rationnelle ou non). sticky est une propriété accessible en lecture seule, rattachée à l'instance.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-sticky.html")}}
- - - -
{{js_property_attributes(0,0,1)}}
- -

Description

- -

La propriété sticky est un booléen qui vaut true si le marqueur (flag) "y" a été utilisé, false sinon. Ce marqueur indique que les correspondances ne sont recherchées qu'à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} au niveau de la chaîne de caractères (les correspondances à partir des autres positions ne seront pas trouvées). Lorsqu'une expression rationnelle qui utilise le marqueur sticky et le marqueur global ignorera le marqueur global.

- -

La propriété sticky ne peut pas être modifiée directement. Elle est uniquement en lecture seule.

- -

Exemples

- -

Utiliser une expression rationnelle avec le flag sticky

- -
var str = '#toto#';
-var regex = /toto/y;
-
-regex.lastIndex = 1;
-regex.test(str); // true
-regex.lastIndex = 5;
-regex.test(str); // false (lastIndex est pris en compte avec sticky)
-regex.lastIndex; // 0 (on rénitialise après un échec)
-
- -

Marqueur d'adhérence « ancré »

- -

Pendant plusieurs versions, le moteur JavaScript de Firefox, SpiderMonkey, avait un bug qui entraînait des correspondances invalides lorsqu'étaient utilisés le marqueur d'adhérence et le symbole ^ dans l'expression rationnelle. Ce bug est apparu peu après Firefox 3.6. Afin d'éviter ce bug, la spécification ES2015 indique spécifiquement que, lorsque le marqueur y est utilisé avec un motif commençant par ^, ce dernier doit correspondre au début de la chaine (ou, si multiline vaut true, au début de la ligne). Les exemples qui suivent illustrent le comportement correct :

- -
var regex = /^foo/y;
-regex.lastIndex = 2; // désactive la correspondance au début
-regex.test("..foo"); // false
-
-var regex2 = /^foo/my;
-regex2.lastIndex = 2;
-regex2.test("..foo"); // false
-regex2.lastIndex = 2;
-regex2.test(".\nfoo"); // true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationEtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.sticky")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md b/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md new file mode 100644 index 0000000000..ab261c0d51 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md @@ -0,0 +1,94 @@ +--- +title: RegExp.prototype.sticky +slug: Web/JavaScript/Reference/Global_Objects/RegExp/sticky +tags: + - ECMAScript 2015 + - Expressions rationnelles + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/sticky +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/sticky +--- +
{{JSRef}}
+ +

La propriété sticky (adhérante) permet de déterminer si la recherche s'effectue uniquement à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} lié à l'expression rationnelle ou non). sticky est une propriété accessible en lecture seule, rattachée à l'instance.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-sticky.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Description

+ +

La propriété sticky est un booléen qui vaut true si le marqueur (flag) "y" a été utilisé, false sinon. Ce marqueur indique que les correspondances ne sont recherchées qu'à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} au niveau de la chaîne de caractères (les correspondances à partir des autres positions ne seront pas trouvées). Lorsqu'une expression rationnelle qui utilise le marqueur sticky et le marqueur global ignorera le marqueur global.

+ +

La propriété sticky ne peut pas être modifiée directement. Elle est uniquement en lecture seule.

+ +

Exemples

+ +

Utiliser une expression rationnelle avec le flag sticky

+ +
var str = '#toto#';
+var regex = /toto/y;
+
+regex.lastIndex = 1;
+regex.test(str); // true
+regex.lastIndex = 5;
+regex.test(str); // false (lastIndex est pris en compte avec sticky)
+regex.lastIndex; // 0 (on rénitialise après un échec)
+
+ +

Marqueur d'adhérence « ancré »

+ +

Pendant plusieurs versions, le moteur JavaScript de Firefox, SpiderMonkey, avait un bug qui entraînait des correspondances invalides lorsqu'étaient utilisés le marqueur d'adhérence et le symbole ^ dans l'expression rationnelle. Ce bug est apparu peu après Firefox 3.6. Afin d'éviter ce bug, la spécification ES2015 indique spécifiquement que, lorsque le marqueur y est utilisé avec un motif commençant par ^, ce dernier doit correspondre au début de la chaine (ou, si multiline vaut true, au début de la ligne). Les exemples qui suivent illustrent le comportement correct :

+ +
var regex = /^foo/y;
+regex.lastIndex = 2; // désactive la correspondance au début
+regex.test("..foo"); // false
+
+var regex2 = /^foo/my;
+regex2.lastIndex = 2;
+regex2.test("..foo"); // false
+regex2.lastIndex = 2;
+regex2.test(".\nfoo"); // true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationEtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.sticky")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/test/index.html b/files/fr/web/javascript/reference/global_objects/regexp/test/index.html deleted file mode 100644 index 039407032c..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/test/index.html +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: RegExp.prototype.test() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/test -tags: - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/test ---- -
{{JSRef}}
- -

La méthode test() vérifie s'il y a une correspondance entre un texte et une expression rationnelle. Elle retourne true en cas de succès et false dans le cas contraire.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-test.html", "taller")}}
- -

Syntaxe

- -
regexObj.test(chaîne)
- -

Paramètres

- -
-
chaîne
-
La chaîne de caractères qu'on souhaite comparer à l'expression rationnelle.
-
- -

Valeur de retour

- -

Un booléen : true ou false selon qu'une correspondance a été trouvée entre la chaîne de caractères et la chaîne passée en argument.

- -

Description

- -

On utilisera test() dès qu'on souhaite savoir si une partie d'une chaîne de caractères correspond à une expression rationnelle (similaire à la méthode {{jsxref("String.prototype.search()")}}). Pour obtenir plus d'informations (mais une exécution moins rapide), on utilisera la méthode {{jsxref("RegExp.prototype.exec()", "exec()")}} (similaire à la méthode {{jsxref("String.prototype.match()")}}). Comme avec {{jsxref("RegExp.prototype.exec()", "exec()")}} (et même en combinant les deux), des appels successifs à test() sur une même instance d'une expression rationnelle permettent de rechercher après la dernière occurence. Cette méthode est différente de search car elle renvoie un booléen et non la position de la correspondance si elle est trouvée (ou -1 sinon).

- -

Exemples

- -

Utiliser test()

- -

Voici un exemple simple qui illustre comment détecter si la chaîne coucou est contenue au début d'une chaîne :

- -
const chaine = "coucou le monde !";
-const resultat = /^coucou/.test(chaine);
-console.log(resultat); // true
-
- -

L'exemple ci-dessous affiche un message qui dépend du succès du test :

- -
function testinput(regex, chaine){
-    var midstring;
-    if (regex.test(chaine)) {
-        midstring = " contient ";
-    } else {
-        midstring = " ne contient pas ";
-    }
-    console.log(str + midstring + re.source);
-}
-
-testinput(/^coucou/, "coucou le monde"); // coucou le monde contient coucou
-testinput(/^coucou/, "salut le monde") // salut le monde ne contient pas coucou
-
- -

Utiliser test() avec le marqueur global (/g)

- -

Si l'expression rationnelle utilise le marqueur global (g), la méthode test() avancera la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} associée à l'expression rationnelle. Ainsi, si on utilise test() ensuite, la recherche commencera à partir de la nouvelle valeur de lastIndex (de même {{jsxref("RegExp.prototype.exec()","exec()")}} fera également avancer la propriété lastIndex). On notera que la propriété lastIndex ne sera pas réinitialisée si la recherche est effectuée sur une autre chaîne de caractères.

- -
var regex = /toto/g;
-
-// regex.lastIndex se situe à 0
-regex.test("toto"); // true
-
-// regex.lastIndex se situe désormais à 4
-regex.test("toto"); // false
-
- -

Avec le même mécanisme, on peut utiliser une boucle pour compter le nombre de mots contenus dans une chaîne de caractères

- -
function compterMots(texte) {
-  for (var regex = /\w+/g, nbMots = 0; regex.test(texte); nbMots++);
-  return nbMots;
-}
-
-console.log(compterMots("Ah que coucou Bob")); // 4
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.test")}}

- -

Notes spécifiques à Firefox

- -

Pour les versions antérieures à Firefox 8.0, l'implémentation de test() était erronée. Quand la méthode était appelée sans aucun paramètre, elle effectuait son test par rapport à la dernière entrée (la propriété RegExp.input) et non par rapport à la chaîne "undefined". Ce comportement a été corrigé  ; désormais /undefined/.test() retourne bien true au lieu d'une erreur.

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/test/index.md b/files/fr/web/javascript/reference/global_objects/regexp/test/index.md new file mode 100644 index 0000000000..039407032c --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/test/index.md @@ -0,0 +1,135 @@ +--- +title: RegExp.prototype.test() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/test +tags: + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/test +--- +
{{JSRef}}
+ +

La méthode test() vérifie s'il y a une correspondance entre un texte et une expression rationnelle. Elle retourne true en cas de succès et false dans le cas contraire.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-test.html", "taller")}}
+ +

Syntaxe

+ +
regexObj.test(chaîne)
+ +

Paramètres

+ +
+
chaîne
+
La chaîne de caractères qu'on souhaite comparer à l'expression rationnelle.
+
+ +

Valeur de retour

+ +

Un booléen : true ou false selon qu'une correspondance a été trouvée entre la chaîne de caractères et la chaîne passée en argument.

+ +

Description

+ +

On utilisera test() dès qu'on souhaite savoir si une partie d'une chaîne de caractères correspond à une expression rationnelle (similaire à la méthode {{jsxref("String.prototype.search()")}}). Pour obtenir plus d'informations (mais une exécution moins rapide), on utilisera la méthode {{jsxref("RegExp.prototype.exec()", "exec()")}} (similaire à la méthode {{jsxref("String.prototype.match()")}}). Comme avec {{jsxref("RegExp.prototype.exec()", "exec()")}} (et même en combinant les deux), des appels successifs à test() sur une même instance d'une expression rationnelle permettent de rechercher après la dernière occurence. Cette méthode est différente de search car elle renvoie un booléen et non la position de la correspondance si elle est trouvée (ou -1 sinon).

+ +

Exemples

+ +

Utiliser test()

+ +

Voici un exemple simple qui illustre comment détecter si la chaîne coucou est contenue au début d'une chaîne :

+ +
const chaine = "coucou le monde !";
+const resultat = /^coucou/.test(chaine);
+console.log(resultat); // true
+
+ +

L'exemple ci-dessous affiche un message qui dépend du succès du test :

+ +
function testinput(regex, chaine){
+    var midstring;
+    if (regex.test(chaine)) {
+        midstring = " contient ";
+    } else {
+        midstring = " ne contient pas ";
+    }
+    console.log(str + midstring + re.source);
+}
+
+testinput(/^coucou/, "coucou le monde"); // coucou le monde contient coucou
+testinput(/^coucou/, "salut le monde") // salut le monde ne contient pas coucou
+
+ +

Utiliser test() avec le marqueur global (/g)

+ +

Si l'expression rationnelle utilise le marqueur global (g), la méthode test() avancera la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} associée à l'expression rationnelle. Ainsi, si on utilise test() ensuite, la recherche commencera à partir de la nouvelle valeur de lastIndex (de même {{jsxref("RegExp.prototype.exec()","exec()")}} fera également avancer la propriété lastIndex). On notera que la propriété lastIndex ne sera pas réinitialisée si la recherche est effectuée sur une autre chaîne de caractères.

+ +
var regex = /toto/g;
+
+// regex.lastIndex se situe à 0
+regex.test("toto"); // true
+
+// regex.lastIndex se situe désormais à 4
+regex.test("toto"); // false
+
+ +

Avec le même mécanisme, on peut utiliser une boucle pour compter le nombre de mots contenus dans une chaîne de caractères

+ +
function compterMots(texte) {
+  for (var regex = /\w+/g, nbMots = 0; regex.test(texte); nbMots++);
+  return nbMots;
+}
+
+console.log(compterMots("Ah que coucou Bob")); // 4
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.test")}}

+ +

Notes spécifiques à Firefox

+ +

Pour les versions antérieures à Firefox 8.0, l'implémentation de test() était erronée. Quand la méthode était appelée sans aucun paramètre, elle effectuait son test par rapport à la dernière entrée (la propriété RegExp.input) et non par rapport à la chaîne "undefined". Ce comportement a été corrigé  ; désormais /undefined/.test() retourne bien true au lieu d'une erreur.

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.html b/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.html deleted file mode 100644 index ddd032b9f2..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: RegExp.prototype.toSource() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/toSource -tags: - - JavaScript - - Méthode - - Non-standard - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/toSource ---- -
{{JSRef}}{{non-standard_header}}
- -

La méthode toSource() permet de renvoyer une chaîne de caractères représentant le code source de l'objet.

- -

Syntaxe

- -
objetRegExp.toSource()
-
- -

Valeur de retour

- -

Une chaîne de caractères représentant le code source de l'objet {{jsxref("RegExp")}}.

- -

Description

- -

La méthode toSource renvoie les valeurs suivantes :

- - - -

Cette méthode est généralement utilisée de façon interne au moteur JavaScript, elle n'est pas censée être utilisée dans du code JavaScript classique.

- -

Spécifications

- -

Cette méthode ne fait partie d'aucun standard. Elle a été implémentée avec JavaScript 1.3.

- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.toSource")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.md b/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.md new file mode 100644 index 0000000000..ddd032b9f2 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/tosource/index.md @@ -0,0 +1,56 @@ +--- +title: RegExp.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/toSource +tags: + - JavaScript + - Méthode + - Non-standard + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/toSource +--- +
{{JSRef}}{{non-standard_header}}
+ +

La méthode toSource() permet de renvoyer une chaîne de caractères représentant le code source de l'objet.

+ +

Syntaxe

+ +
objetRegExp.toSource()
+
+ +

Valeur de retour

+ +

Une chaîne de caractères représentant le code source de l'objet {{jsxref("RegExp")}}.

+ +

Description

+ +

La méthode toSource renvoie les valeurs suivantes :

+ + + +

Cette méthode est généralement utilisée de façon interne au moteur JavaScript, elle n'est pas censée être utilisée dans du code JavaScript classique.

+ +

Spécifications

+ +

Cette méthode ne fait partie d'aucun standard. Elle a été implémentée avec JavaScript 1.3.

+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.toSource")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.html b/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.html deleted file mode 100644 index d5f3e52afb..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: RegExp.prototype.toString() -slug: Web/JavaScript/Reference/Global_Objects/RegExp/toString -tags: - - JavaScript - - Méthode - - Prototype - - Reference - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/toString ---- -
{{JSRef}}
- -

La méthode toString() renvoie une chaîne de caractères représentant l'expression rationnelle.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-tostring.html", "taller")}}
- -

Syntaxe

- -
regexObj.toString();
- -

Valeur de retour

- -

Une chaîne de caractères représentant l'expression rationnelle appelante.

- -

Description

- -

L'objet {{jsxref("RegExp")}} surcharge la méthode toString de l'objet {{jsxref("Object")}}. Il n'hérite donc pas de {{jsxref("Object.prototype.toString()")}}. Pour les objets RegExp, la méthode toString() renvoie une représentation de l'expression rationnelle sous la forme d'une chaîne de caractères.

- -

Exemples

- -

Utiliser toString()

- -

L'exemple qui suit affiche la chaîne correspondant à la valeur de l'objet {{jsxref("Global_Objects/RegExp", "RegExp")}} :

- -
var maRegExp = new RegExp("a+b+c");
-console.log(maRegExp.toString());  // affiche "/a+b+c/"
-
-var toto = new RegExp("truc", "g");
-console.log(toto.toString());      // affiche "/truc/g"
-
- -

Les expressions ratonnelles vides et l'échappement

- -

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

- -
new RegExp().toString(); // "(?:)"
-
-new RegExp('\n').toString() === "/\n/";  // true avant ES5
-new RegExp('\n').toString() === "/\\n/"; // true à partir d'ES5
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5.2', 'RegExp.prototype.toString')}}{{Spec2('ES5.1')}}source renvoie désormais "(?:)" (et non "") pour les expressions vides. La définition du comportement pour les échappements a été ajoutée.
{{SpecName('ES6', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.toString")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.md b/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.md new file mode 100644 index 0000000000..d5f3e52afb --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/tostring/index.md @@ -0,0 +1,93 @@ +--- +title: RegExp.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/toString +tags: + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/toString +--- +
{{JSRef}}
+ +

La méthode toString() renvoie une chaîne de caractères représentant l'expression rationnelle.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-tostring.html", "taller")}}
+ +

Syntaxe

+ +
regexObj.toString();
+ +

Valeur de retour

+ +

Une chaîne de caractères représentant l'expression rationnelle appelante.

+ +

Description

+ +

L'objet {{jsxref("RegExp")}} surcharge la méthode toString de l'objet {{jsxref("Object")}}. Il n'hérite donc pas de {{jsxref("Object.prototype.toString()")}}. Pour les objets RegExp, la méthode toString() renvoie une représentation de l'expression rationnelle sous la forme d'une chaîne de caractères.

+ +

Exemples

+ +

Utiliser toString()

+ +

L'exemple qui suit affiche la chaîne correspondant à la valeur de l'objet {{jsxref("Global_Objects/RegExp", "RegExp")}} :

+ +
var maRegExp = new RegExp("a+b+c");
+console.log(maRegExp.toString());  // affiche "/a+b+c/"
+
+var toto = new RegExp("truc", "g");
+console.log(toto.toString());      // affiche "/truc/g"
+
+ +

Les expressions ratonnelles vides et l'échappement

+ +

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

+ +
new RegExp().toString(); // "(?:)"
+
+new RegExp('\n').toString() === "/\n/";  // true avant ES5
+new RegExp('\n').toString() === "/\\n/"; // true à partir d'ES5
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5.2', 'RegExp.prototype.toString')}}{{Spec2('ES5.1')}}source renvoie désormais "(?:)" (et non "") pour les expressions vides. La définition du comportement pour les échappements a été ajoutée.
{{SpecName('ES6', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.toString")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.html b/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.html deleted file mode 100644 index a15009ce4e..0000000000 --- a/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: RegExp.prototype.unicode -slug: Web/JavaScript/Reference/Global_Objects/RegExp/unicode -tags: - - ECMAScript 2015 - - JavaScript - - Propriété - - Prototype - - Reference - - RegExp - - Regular Expressions -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/unicode -original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/unicode ---- -
{{JSRef}}
- -

La propriété unicode indique si le drapeau "u" a été utilisé avec l'expression rationnelle. unicode est une propriété en lecture seule et liée à une instance d'expression rationnelle.

- -
{{EmbedInteractiveExample("pages/js/regexp-prototype-unicode.html", "taller")}}
- - - -
{{js_property_attributes(0, 0, 1)}}
- -

Description

- -

La valeur d'unicode est un {{jsxref("Boolean")}} et vaut true si le drapeau "u" a été utilisé, sinon false. Le drapeau "u" permet d'activer les fonctionnalités liées à Unicode. En utilisant le drapeau "u" toute séquence d'échappement représentant un codet Unicode sera interprétée comme telle.

- -

Cette propriété ne peut pas être modifiée directement.

- -

Exemples

- -
var regex = new RegExp('\u{61}', 'u');
-
-console.log(regex.unicode); // true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.RegExp.unicode")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.md b/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.md new file mode 100644 index 0000000000..a15009ce4e --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/unicode/index.md @@ -0,0 +1,73 @@ +--- +title: RegExp.prototype.unicode +slug: Web/JavaScript/Reference/Global_Objects/RegExp/unicode +tags: + - ECMAScript 2015 + - JavaScript + - Propriété + - Prototype + - Reference + - RegExp + - Regular Expressions +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/unicode +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/unicode +--- +
{{JSRef}}
+ +

La propriété unicode indique si le drapeau "u" a été utilisé avec l'expression rationnelle. unicode est une propriété en lecture seule et liée à une instance d'expression rationnelle.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-unicode.html", "taller")}}
+ + + +
{{js_property_attributes(0, 0, 1)}}
+ +

Description

+ +

La valeur d'unicode est un {{jsxref("Boolean")}} et vaut true si le drapeau "u" a été utilisé, sinon false. Le drapeau "u" permet d'activer les fonctionnalités liées à Unicode. En utilisant le drapeau "u" toute séquence d'échappement représentant un codet Unicode sera interprétée comme telle.

+ +

Cette propriété ne peut pas être modifiée directement.

+ +

Exemples

+ +
var regex = new RegExp('\u{61}', 'u');
+
+console.log(regex.unicode); // true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.RegExp.unicode")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf