String. prototype. search()
Renvoie l’indice de la première correspondance d’une expression régulière dans une chaîne, ou -1.
- Renvoie
- L’indice de la première correspondance, ou
-1quand le motif ne correspond nulle part. - Modifie l’original
- Non
Exemple
#const code = 'Code promo : PROMO2026'
console.log(code.search(/\d/))
console.log(code.search(/[A-Z]{4}/))
console.log(code.search(/python/i))Définition et utilisation
#La méthode search() compare une chaîne à une expression régulière et renvoie la position à laquelle commence la première correspondance. Quand le motif ne correspond nulle part, le résultat est -1. Elle fonctionne donc comme indexOf(), mais cherche un motif plutôt qu’un texte fixe.
Vous pouvez ainsi trouver le premier chiffre d’un texte, la première lettre majuscule, ou un mot écrit avec n’importe quelle casse (flag i). Si vous passez une simple chaîne, elle est convertie en expression régulière, donc des caractères comme . ou ? gardent leur sens particulier.
La méthode cherche toujours depuis le début de la chaîne et ignore le flag g ainsi que la propriété lastIndex. Quand vous avez besoin du texte correspondant lui-même, utilisez match(), et pour une simple réponse « ça correspond ou pas », regex.test(text) suffit.
Syntaxe
#string.search(regexp)Paramètres
#regexp
RegExp | string
Expression régulière. Une simple chaîne est convertie en expression vianew RegExp().
Plus d’exemples
#const title = 'Leçon 12 : Boucles'
console.log(title.indexOf('12'))
console.log(title.search(/\d+/))
console.log(title.indexOf('.'))
console.log(title.search('.'))Il n’y a pas de point dans le titre, et pourtant search(".") a renvoyé 0. La chaîne s’est transformée en expression régulière, où le point signifie n’importe quel caractère.
const address = '15 rue des Fleurs, 00-950 Paris'
const start = address.search(/\d{2}-\d{3}/)
console.log(start)
console.log(address.slice(start, start + 6))Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Une chaîne que vous passez devient une expression régulière, donc
"1.5".search(".")renvoie0, car le point correspond à n’importe quel caractère. UtilisezindexOf()pour chercher un texte fixe. - Un résultat de
0signifie une correspondance tout au début, pas son absence. Comparez le résultat à-1.
Entrées associées
#- String.prototype.indexOf()Renvoie l’indice de la première occurrence du texte donné dans une chaîne, ou -1 s’il est absent.
- String.prototype.match()Fait correspondre une chaîne à une expression régulière. Renvoie un tableau avec la correspondance, toutes les correspondances, ou null.
- RegExpUne expression régulière : un modèle pour rechercher, valider et remplacer des fragments de texte.
- String.prototype.matchAll()Renvoie un itérateur sur toutes les correspondances d’une expression régulière, chacune avec ses groupes et sa position dans le texte.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.