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/@@search/index.html | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html (limited to 'files/fr/web/javascript/reference/global_objects/regexp/@@search') 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 new file mode 100644 index 0000000000..f01c42c1d0 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/regexp/@@search/index.html @@ -0,0 +1,118 @@ +--- +title: 'RegExp.prototype[@@search]()' +slug: Web/JavaScript/Reference/Objets_globaux/RegExp/@@search +tags: + - Expressions rationnelles + - JavaScript + - Méthode + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/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

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