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 -1 quand le motif ne correspond nulle part.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const code = 'Code promo : PROMO2026'

console.log(code.search(/\d/))
console.log(code.search(/[A-Z]{4}/))
console.log(code.search(/python/i))
Console
18
13
-1

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

#
Syntaxe
string.search(regexp)

Paramètres

#
  • regexp

    RegExp | string

    Expression régulière. Une simple chaîne est convertie en expression via new RegExp().

Plus d’exemples

#
search() face à indexOf()
JavaScript
const title = 'Leçon 12 : Boucles'

console.log(title.indexOf('12'))
console.log(title.search(/\d+/))
console.log(title.indexOf('.'))
console.log(title.search('.'))
Console
6
6
-1
0

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.

Extraire un code postal
JavaScript
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))
Console
19
00-950

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(".") renvoie 0, car le point correspond à n’importe quel caractère. Utilisez indexOf() pour chercher un texte fixe.
  • Un résultat de 0 signifie une correspondance tout au début, pas son absence. Comparez le résultat à -1.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.