Testeur de regex JavaScript
Testez un motif avec le moteur RegExp sur lequel tournera votre JavaScript : ce qui correspond ici correspondra dans votre code.
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
| Drapeau | Effet |
|---|---|
g | Trouve toutes les correspondances, pas seulement la première ; nécessaire pour toutes les remplacer |
i | Ignore la casse |
m | ^ et $ correspondent à chaque saut de ligne, pas seulement aux extrémités du texte |
s | . correspond aussi à un saut de ligne |
u | Mode Unicode : des points de code entiers au lieu d'unités UTF-16, et des échappements de propriété comme \p{L} |
y | Collant : ne correspond qu'à l'endroit où la correspondance précédente s'est arrêtée |
d | Enregistre 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
\wet\bne connaissent que A à Z, a à z, 0 à 9 et le tiret bas : ils ne voient niéni les lettres persanes. Avec le drapeauu,\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
gmémoriselastIndexentre les appels àtest()etexec(): 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 avecg, oureplaceAll().- Dans un remplacement,
$1est 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.