La méthode [@@search]()
recherche une correspondance entre une expression rationnelle décrite par this
et une chaîne de caractères donnée.
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
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'RegExp.prototype[@@search]' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript 2017 Draft (ECMA-262) La définition de 'RegExp.prototype[@@search]' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | ? | 49 (49) | ? | ? | ? |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | ? | ? | 49.0 (49) | ? | ? | ? |
Voir aussi
Étiquettes et contributeurs liés au document
Étiquettes :
Contributeurs à cette page :
SphinxKnight
Dernière mise à jour par :
SphinxKnight,