String.prototype.match()

Fait correspondre une chaîne à une expression régulière. Renvoie un tableau avec la correspondance, toutes les correspondances, ou null.

Renvoie
Un tableau avec la correspondance et ses groupes (sans le flag g), un tableau de toutes les correspondances (avec le flag g), ou null quand rien ne correspond.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const message = 'Exercice 12 pour 30 pts, exercice 13 pour 45 pts'

console.log(message.match(/\d+/g))
console.log(message.match(/(\d+) pts/))
console.log(message.match(/bonus/))
Console
['12', '30', '13', '45']
['30 pts', '30']
null

Définition et utilisation

#

La méthode match() compare une chaîne à une expression régulière et renvoie les fragments trouvés. Quand rien ne correspond, le résultat est null ; vérifiez donc toujours qu’une correspondance existe avant d’utiliser le résultat.

Le résultat dépend du flag g. Sans lui, vous obtenez les détails de la première correspondance : l’indice 0 contient tout le texte correspondant, les indices suivants les groupes capturés, et les propriétés index et groups sa position et ses groupes nommés. Avec le flag g, vous obtenez un simple tableau de toutes les correspondances, sans les groupes.

Quand vous avez besoin à la fois de toutes les correspondances et de leurs groupes, utilisez matchAll(), qui renvoie un itérateur. Si vous voulez seulement vérifier qu’un motif correspond, regex.test(text) est plus simple et renvoie true ou false.

Syntaxe

#
Syntaxe
string.match(regexp)

Paramètres

#
  • regexp

    RegExp | string

    Expression régulière. Une chaîne est convertie en expression via new RegExp(), donc les caractères spéciaux, comme le point, gardent leur sens particulier.

Plus d’exemples

#
Groupes nommés et position de la correspondance
JavaScript
const text = 'Échéance : 2026-10-15'
const result = text.match(/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/)

console.log(result.groups)
console.log(result.index)
Console
{ year: '2026', month: '10', day: '15' }
11
Absence de correspondance et comptage sûr
JavaScript
const text = 'Aucun chiffre dans cette phrase'
const numbers = text.match(/\d+/g) ?? []
console.log(numbers.length)

const hashtags = 'J’apprends #javascript et #css'.match(/#\w+/g)
console.log(hashtags)
Console
0
['#javascript', '#css']
Vérifier un format avec test()
JavaScript
const codePattern = /^[A-Z]{3}-\d{4}$/

console.log(codePattern.test('ABC-2026'))
console.log(codePattern.test('abc-2026'))
console.log('ABC-2026'.match(codePattern)[0])
Console
true
false
ABC-2026

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

#
  • Le résultat peut être null, et alors result[0] lève une erreur. Vérifiez la correspondance avant d’utiliser le résultat, ou, avec le flag g, écrivez text.match(re) ?? [].
  • Une expression avec le flag g mémorise sa position dans lastIndex, donc appeler test() plusieurs fois sur le même objet peut donner des résultats alternés. Pour une simple vérification, utilisez une expression sans g.
  • Vous pouvez récupérer toutes les correspondances avec leurs groupes via [...text.matchAll(/(\d+) pts/g)].

Entrées associées

#

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