Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. RegExp
  6. RegExp.prototype[@@search]()

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

RegExp.prototype[@@search]()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨septembre 2016⁩.

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

Exemple interactif

class RegExp1 extends RegExp {  constructor(str) {    super(str);    this.pattern = str;  }  [Symbol.search](str) {    return str.indexOf(this.pattern);  }}console.log("table football".search(new RegExp1("foo")));// Expected output: 6

Syntaxe

js
regexp[Symbol.search](str);

Paramètres

str

Une chaîne de caractères (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 deString.prototype.search(). Ainsi, les deux exemples qui suivent sont équivalents et le second est la version interne du premier :

js
"abc".search(/a/);/a/[Symbol.search]("abc");

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

Exemples

Appel direct

Cette méthode peut être utilisée commeString.prototype.search(), elle utilise simplement un objetthis différent et un ordre de paramètres différent :

js
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 deRegExp peuvent surcharger[@@search]() afin de modifier le comportement obtenu :

js
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

Specification
ECMAScript® 2026 Language Specification
# sec-regexp.prototype-%symbol.search%

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp