From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../global_objects/regexp/@@split/index.html | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html (limited to 'files/fr/web/javascript/reference/global_objects/regexp/@@split') 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 new file mode 100644 index 0000000000..0581e2a64d --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@split/index.html @@ -0,0 +1,118 @@ +--- +title: 'RegExp.prototype[@@split]()' +slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@split +tags: + - Expressions rationnelles + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/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

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