Ce que fait cet outil
Un testeur d'expression régulière JavaScript avec mise en évidence de correspondance en direct, détail des groupes de capture et protection contre le backtracking catastrophique. L'entrée des flags accepte le set standard (g i m s u y), et les correspondances sont listées avec leurs indices de début et de fin et tous les groupes nommés ou numérotés.
Quand l'utiliser
- Brouillonner une regex contre un échantillon représentatif avant de la coller dans le code.
- Confirmer ce qu'une regex de quelqu'un d'autre matche vraiment (et ce qu'elle ne matche pas).
- Resserrer un motif qui était trop greedy ou trop laxiste en production.
- Pratiquer le flavor JavaScript spécifiquement, puisque chaque langage a une sémantique subtilement différente.
Comment ça marche
Le motif est compilé avec new RegExp(pattern, flags) et lancé contre le texte de test. Le matching se fait dans un Web Worker avec un timeout d'1 seconde — si le motif déclenche du backtracking catastrophique sur l'entrée fournie, le worker est terminé et tu vois une erreur « regex took too long » au lieu d'un onglet figé. C'est un vrai souci pour des motifs comme (a+)+b contre de longues entrées de a.
Notes
Pourquoi un Web Worker est-il nécessaire ? Les moteurs regex des navigateurs n'exposent pas de timeout, et une seule regex lente peut figer la thread principale pendant des dizaines de secondes. Faire tourner le matching dans un Worker veut dire qu'on peut worker.terminate() et rester réactif.
Est-ce que ça supporte les fonctionnalités Perl/PCRE ? Non — seulement ce que JavaScript supporte. \K, les groupes atomiques, les quantificateurs possessifs et les motifs récursifs ne font pas partie de la grammaire regex JS. Le lookbehind et les groupes nommés oui.
Ma regex matche dans cet outil mais pas dans mon code. Vérifie les flags. Le flag u change la manière dont certaines classes de caractères matchent l'Unicode ; le flag g affecte l'état entre appels quand tu réutilises l'objet regex.
Outils liés
- Comparateur — compare avant/après quand tu refactores des motifs
- Formateur JSON — pour tester des motifs contre des payloads d'API