A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/Symbol.search below:

RegExp.prototype[@@search]() - JavaScript | MDN

RegExp.prototype[@@search]()

Baseline Widely available

La méthode [@@search]() recherche une correspondance entre une expression rationnelle décrite par this 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
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 de 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 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 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 Compatibilité des navigateurs Voir aussi

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4