Une exécution réelle de cas limites regex
Tester les expressions régulières JavaScript avec cas limites et remplacements plus sûrs
Une méthode pour rendre une expression régulière JavaScript contrôlable : cas explicites, moteur et drapeaux identifiés, et motifs coûteux écartés des données de production.
Ouvrir l’outilDécrire le résultat attendu avant d’écrire
Listez les entrées qui doivent correspondre, celles qui ne le doivent pas, les limites, les valeurs vides, les caractères Unicode et les quasi-correspondances. Précisez si vous attendez la correspondance complète ou un groupe.
Les ancres, limites, espaces, éléments facultatifs et échappements comptent. Utilisez un véritable analyseur pour JSON, les URL, les dates ou le balisage lorsque leur grammaire complète importe.
Utiliser le même moteur et des drapeaux explicites
Cet outil utilise le moteur JavaScript `RegExp` et les drapeaux `g`, `i`, `m`, `s`, `u` et `y`. PCRE, Python, Java, .NET ou le moteur du serveur peuvent se comporter différemment.
`g` parcourt toutes les occurrences, `m` modifie le comportement de `^` et `$`, `s` étend le point aux sauts de ligne, `u` active l’interprétation Unicode et `y` impose la position exacte.
Groupes et remplacement ensemble
Vérifiez les groupes numérotés et nommés, aussi bien lorsqu’ils sont présents que lorsqu’un groupe facultatif est absent.
Testez `$&`, `$1` et `$<name>`. Lorsqu’un remplacement est fourni, l’aperçu remplace toutes les occurrences, même sans le drapeau `g`.
Éviter le risque de performance
Des répétitions ambiguës imbriquées comme `(a+)+` ou `(.*)*` peuvent devenir très lentes sur une longue entrée qui échoue près de la fin.
Les limites de 500 Ko et 1 000 correspondances ne remplacent ni un délai d’exécution ni l’isolation dans un processus distinct. Utilisez de courts cas adverses et des protections adaptées côté serveur.
Garder des cas rejouables
Conservez le motif, les drapeaux, les exemples et les résultats attendus près du code, puis créez un test automatisé dans l’environnement d’exécution final.
Le traitement est local, mais les journaux, jetons, e-mails et URL signées restent des données sensibles.
Questions fréquentes
Pourquoi échec serveur ?
Le serveur peut employer un autre moteur.
g change-t-il le remplacement ?
L’aperçu applique le remplacement à toutes les occurrences afin de montrer chaque modification.
500 Ko évitent-ils les regex lentes ?
Non. L’outil n’impose aucun délai maximal d’exécution.