Testeur d’expressions régulièresDébogueur JavaScript RegExp en direct
fr

AppHelp

Testez et déboguez des expressions régulières JavaScript

Visualisez les correspondances, inspectez indices et groupes, vérifiez des cas positifs et négatifs, prévisualisez le remplacement et copiez le code JavaScript.

Espace regex JavaScript

Travaille avec le moteur JavaScript RegExp du navigateur : surlignage, tests, remplacement et code généré.

Exécution locale
Drapeaux

Aperçu des correspondances

/(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,})/gi

2 correspondancesValide
Contact ada@example.com or support@apphelp.net. Invalid: person@example.
Correspondance 1[8, 23) · 15 caractères
ada@example.com
$1ada
$2example.com
userada
domainexample.com
Correspondance 2[27, 46) · 19 caractères
support@apphelp.net
$1support
$2apphelp.net
usersupport
domainapphelp.net
.

Tout caractère sauf un retour ligne

\d / \w / \s

Classes chiffre, mot et espace

* + ?

Zéro ou plus, un ou plus, facultatif

{2,5}

Répéter de 2 à 5 fois

^ $

Ancres de début et de fin

(...) / (?:...)

Groupes capturants et non capturants

(?<name>...)

Groupe capturant nommé

(?=...) / (?!...)

Anticipation positive et négative

Tâches courantes

  • testeur regex
  • testeur expression régulière
  • regex javascript en ligne
  • débogueur regex
  • surlignage correspondance regex
  • test remplacement regex
  • groupes capture regex
  • tests unitaires regex
  • alternative regex101
  • outil regex gratuit

Réponse rapide

Saisissez un motif JavaScript, choisissez ses drapeaux et collez un texte. AppHelp compile avec le moteur RegExp du navigateur, surligne chaque correspondance JavaScript, affiche indices et groupes, prévisualise les jetons de remplacement, exécute des cas positifs et négatifs ligne par ligne et génère un constructeur correctement échappé. PCRE, Python, Java, .NET et RE2 peuvent se comporter différemment.

Mode d'emploi

  1. 1. Saisir un motif JavaScriptEntrez le motif sans barres obliques. Choisissez les drapeaux séparément pour éviter doublons et options non prises en charge.
  2. 2. Inspecter les correspondancesCollez un texte représentatif et vérifiez chaque correspondance, sa plage semi-ouverte, ses groupes et les marqueurs de longueur nulle.
  3. 3. Vérifier remplacement et testsUtilisez les jetons JavaScript $1 ou $<name>, puis ajoutez un cas attendu positif ou négatif par ligne.
  4. 4. Copier le code d’implémentationOuvrez JavaScript, copiez le constructeur RegExp puis contrôlez performances et compatibilité avant production.

Exemples

Groupes e-mail nommés

Entrée
(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,}) / gi
Sortie
Correspond à un texte ressemblant à un e-mail et expose user et domain.

Composants de date ISO

Entrée
\b(?<year>\d{4})-(?<month>0[1-9]|1[0-2])-(?<day>0[1-9]|[12]\d|3[01])\b / g
Sortie
Capture année, mois et jour dans les candidats YYYY-MM-DD.

La forme numérique est vérifiée, pas la validité calendaire telle que le 31 février.

Mot répété

Entrée
\b(?<word>\w+)\s+\k<word>\b / gi
Sortie
Détecte des mots adjacents répétés comme is is.

Cas d'utilisation courants

  • Déboguer un motif de validation avant de l’ajouter à un formulaire
  • Inspecter les groupes utilisés par des analyseurs, journaux et migrations
  • Prévisualiser une recherche-remplacement avant de modifier texte ou code
  • Transformer des exemples de bogues en tests positifs et négatifs
  • Générer un constructeur JavaScript RegExp correctement échappé

Cas limites

  • Sans le drapeau global g, JavaScript ne renvoie que la première correspondance et le remplacement n’affecte généralement que celle-ci.
  • Les correspondances globales de longueur nulle exigent d’avancer le curseur ; l’outil les marque et évite les boucles infinies.
  • Une regex valide une forme mais ne prouve pas une règle métier, une date réelle, une URL joignable ou la livraison d’un e-mail.
  • Des quantificateurs imbriqués ambigus peuvent provoquer un retour arrière catastrophique sur une entrée hostile.
  • Retours arrière, propriétés Unicode, drapeaux et jetons diffèrent entre JavaScript, PCRE, Python, Java, .NET et RE2.
  • Le nombre de correspondances et la taille d’entrée sont limités afin de protéger la réactivité du navigateur.

Fonctionnalités

  • Validation JavaScript RegExp et surlignage en direct
  • Plages d’indices, groupes numérotés ou nommés et marqueurs de longueur nulle
  • Contrôles explicites des drapeaux g, i, m, s, u, y et d
  • Aperçu fondé sur la sémantique de remplacement JavaScript
  • Cas positifs et négatifs avec bilan réussite/échec
  • Préréglages e-mail, URL, IPv4, date ISO, couleur hex et mot répété
  • Constructeur JavaScript copiable et aide-mémoire
  • Traitement local avec limite de correspondances pour rester fluide

Questions fréquentes

Quel moteur d’expression régulière est utilisé ?
Le moteur JavaScript RegExp du navigateur actuel, et non PCRE, Python, Java, .NET ou RE2.
À quoi servent les drapeaux g et i ?
g poursuit toutes les correspondances ; sans lui seule la première est renvoyée. i ignore la casse des lettres.
Puis-je inspecter les groupes nommés et numérotés ?
Oui. Chaque carte affiche $1, $2 et les groupes suivants ainsi que ceux déclarés avec (?<name>...).
Comment fonctionnent les jetons de remplacement ?
L’aperçu suit String.replace de JavaScript, notamment $1 pour un groupe numéroté et $<name> pour un groupe nommé.
Pourquoi un marqueur de longueur nulle apparaît-il ?
Certains motifs correspondent à une position plutôt qu’à des caractères. Le marqueur rend le résultat visible et la boucle avance sûrement.
Des tests réussis prouvent-ils la sûreté de la regex ?
Non. Contrôlez aussi faux positifs, faux négatifs, prise en charge du moteur et performances dans le pire cas.
Mon texte de test est-il téléversé ?
Non. Compilation, correspondances, remplacement, tests et génération de code se font localement dans le navigateur.