String.prototype.search()

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 utilisant new 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 avec undefined, 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).

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, tregagnon
 Dernière mise à jour par : SphinxKnight,