Texte 🔒 Fonctionne dans votre navigateur — aucune donnée envoyée

Testeur de regex JavaScript

Testez un motif avec le moteur RegExp sur lequel tournera votre JavaScript : ce qui correspond ici correspondra dans votre code.

/ /
Texte de test
Correspondances et groupes
Les correspondances s'affichent ici...

Testeur de regex JavaScript

Une expression régulière qui fonctionne dans un langage peut échouer dans un autre : le plus sûr pour tester un motif JavaScript reste donc un moteur JavaScript. Cette page ouvre le testeur de regex avec un exemple qui utilise des groupes nommés : le motif (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}), deux dates dans le texte de test et le remplacement $<day>/$<month>/$<year>, qui les réécrit en jour, mois et année.

Le moteur est celui de votre navigateur

Rien n'est envoyé à un serveur : le motif est compilé avec new RegExp() dans votre propre onglet. Cela signifie V8 dans Chrome et Edge, le même moteur que dans Node.js, SpiderMonkey dans Firefox et JavaScriptCore dans Safari. Les trois appliquent les mêmes règles ECMAScript : un motif qui se comporte bien ici se comporte de la même façon dans votre code front-end ou Node sur une version récente.

Les drapeaux

DrapeauEffet
gTrouve toutes les correspondances, pas seulement la première ; nécessaire pour toutes les remplacer
iIgnore la casse
m^ et $ correspondent à chaque saut de ligne, pas seulement aux extrémités du texte
s. correspond aussi à un saut de ligne
uMode Unicode : des points de code entiers au lieu d'unités UTF-16, et des échappements de propriété comme \p{L}
yCollant : ne correspond qu'à l'endroit où la correspondance précédente s'est arrêtée
dEnregistre le début et la fin de chaque groupe, pour le code qui lit match.indices

Toute autre lettre est retirée avant que le motif n'atteigne le moteur, y compris le drapeau v, plus récent. Une lettre saisie deux fois, comme gg, est une erreur, et l'outil affiche le message du moteur lui-même.

Les pièges courants en JavaScript

  • \w et \b ne connaissent que A à Z, a à z, 0 à 9 et le tiret bas : ils ne voient ni é ni les lettres persanes. Avec le drapeau u, \p{L} correspond à une lettre de n'importe quel alphabet.
  • Dans une chaîne, chaque barre oblique inverse doit être doublée : new RegExp("\\d+") est le même motif que le littéral /\d+/. Ce testeur prend le motif tel que vous l'écrivez entre les barres obliques.
  • Une regex avec le drapeau g mémorise lastIndex entre les appels à test() et exec() : tester deux fois la même chaîne peut donc donner true puis false.
  • replace() avec une simple chaîne comme motif ne change que la première occurrence ; utilisez une regex avec g, ou replaceAll().
  • Dans un remplacement, $1 est le premier groupe, $<name> un groupe nommé, $& toute la correspondance et $$ un signe dollar littéral.

Remplacer avec des groupes nommés

Le champ de remplacement suit les mêmes règles que String.prototype.replace(). Avec le motif d'exemple, $<day>/$<month>/$<year> transforme 2026-09-24 en 24/09/2026. Les groupes nommés gardent aussi un motif lisible des mois plus tard : match.groups.year en dit plus que match[1].

Pages associées

Partez d'un motif prêt à l'emploi avec la regex d'URL, ou corrigez les mots en double avec rechercher-remplacer par regex. Pour les adresses e-mail, ainsi que pour les nombres, les numéros de téléphone et les adresses IP, le guide des regex pour e-mail et le guide des motifs pour nombres, téléphones et adresses IP entrent dans le détail.

Guides associés