Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

String : méthode search()

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode search() des valeurs String exécute une recherche d'une correspondance avec une expression rationnelle dans cette chaîne de caractères, renvoyant l'indice de la première correspondance.

Exemple interactif

const paragraph = "Je pense que le chien de Ruth est plus mignon que le tien !";

// N'importe quel caractère sauf mot, espace ou apostrophe
const regex = /[^\w\s']/g;

console.log(paragraph.search(regex));
// Résultat attendu : 41

console.log(paragraph[paragraph.search(regex)]);
// Résultat attendu : "!"

Syntaxe

js
search(regexp)

Paramètres

regexp

Un objet représentant une expression rationnelle, ou tout objet ayant une méthode Symbol.search.

Si regexp n'est pas un objet RegExp et n'a pas de méthode Symbol.search, il est converti en RegExp avec new RegExp(regexp).

Valeur de retour

L'indice de la première correspondance avec l'expression rationnelle, ou -1 si aucune correspondance.

Description

L'implémentation de String.prototype.search() ne fait pas grand-chose à part appeler la méthode Symbol.search de l'argument avec la chaîne de caractères comme premier paramètre. L'implémentation réelle vient de RegExp.prototype[Symbol.search]().

L'indicateur g de regexp n'a pas d'effet sur le résultat de search(). La recherche se fait toujours comme si lastIndex est 0. Pour plus d'information sur le comportement de search(), voir RegExp.prototype[Symbol.search]().

Quand vous voulez savoir si un motif est trouvé, et aussi connaître son indice dans la chaîne de caractères, utilisez search().

Exemples

L'exemple suivant montre l'utilisation de deux expressions rationnelles différentes pour illustrer une recherche réussie (valeur positive) et une recherche infructueuse (-1).

js
const chaine = "coucOu";
const re = /[A-Z]/;
const reDot = /[.]/;
console.log(chaine.search(re)); // retourne 4, qui est l'indice de la première lettre majuscule "O"
console.log(chaine.search(reDot)); // retourne -1 ne trouve pas de point de ponctuation '.'

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-string.prototype.search

Compatibilité des navigateurs

Voir aussi