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
search(regexp)
Paramètres
regexp-
Un objet représentant une expression rationnelle, ou tout objet ayant une méthode
Symbol.search.Si
regexpn'est pas un objetRegExpet n'a pas de méthodeSymbol.search, il est converti enRegExpavecnew 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().
- Si vous voulez juste savoir si ça existe, utilisez la méthode
RegExp.prototype.test(). - Si vous avez besoin du texte trouvé, utilisez
String.prototype.match()ouRegExp.prototype.exec().
Exemples
>Utiliser la méthode search()
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).
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
- La prothèse d'émulation (polyfill en anglais) de
String.prototype.searchdanscore-jsqui corrige et implémente le comportement moderne comme la prise en charge deSymbol.search(angl.) - Le guide des expressions rationnelles
- La méthode
String.prototype.match() - La méthode
RegExp.prototype.exec() - La méthode
RegExp.prototype[Symbol.search]()