La méthode search()
éxecute une recherche dans une chaine de caractères grâce à une expression rationnelle appliquée sur la chaîne courante.
Syntaxe
str.search(regexp)
Paramètres
regexp
- Un objet représentant une expression rationnelle. Si l'objet passé n'est pas un objet d'expression régulière, il est directement converti en une instance de
RegExp
en utilisantnew RegExp(obj)
.
Valeur de retour
Si la recherche aboutit, search()
renvoie un entier qui correspond à l'indice de la première correspondance trouvée dans la chaîne. Si rien n'est trouvé, la méthode renvoie -1
.
Description
Si la recherche est positive, search()
renvoie l'indice de la première correspondance pour l'expression rationnelle au sein de la chaine de caractères. Sinon, la méthode renvoie -1.
Si on souhaite savoir si un motif est trouvé dans une chaine de caractères, on utilisera cette méthode (semblable à la méthode test()
) ; pour plus d'informations (mais une éxecution plus lente), on utilisera match()
(semblable à la méthode exec()
pour les expressions rationnelles). La méthode test
est semblable mais renvoie uniquement un booléen indiquant si une correspondance a été trouvée.
Exemples
Utiliser search()
L'exemple suivant affiche un message dans la console qui indique le résultat du test.
function testinput(re, str) { var midstring; if (str.search(re) != -1) { midstring = " contient "; } else { midstring = " ne contient pas "; } console.log(str + midstring + re); }
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.2 |
ECMAScript 5.1 (ECMA-262) La définition de 'String.prototype.search' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'String.prototype.search' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'String.prototype.search' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Notes spécifiques à Gecko
- Avant Gecko 8.0,
search()
n'était pas implémenté correctement ; quand il était appelé sans paramètre ou avecundefined
, la recherche validait la chaine de caractères "undefined", au lieu de valider une chaine de caractères vide. Cela a été corrigé ; désormais,"a".search()
et"a".search(undefined)
renvoient bien 0. - À partir de Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), les arguments non-standards (
flags
) pour les drapeaux sont dépréciés et déclenchent des avertissements dans la console (bug 1142351). Cette propriété est spécifique à Gecko et sera retirée à l'avenir. - À partir de Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44), l'argument non-standard
flags
n'est plus supporté dans les versions hors release et sera bientôt retiré définitivement (bug 1245801). - À partir de Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), l'argument non-standard
flags
n'est plus pris en charge (bug 1108382).