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.
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.
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
.
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
.
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