Aller au contenu

Expressions régulières JavaScript

Introduction aux expressions régulières (Regex) en JavaScript

Les expressions régulières, communément appelées regex, sont des séquences de caractères qui forment des motifs de recherche. Elles constituent des outils essentiels en programmation pour les tâches de traitement de texte, telles que la recherche, l'édition et la manipulation de données de chaînes. La regex est utilisée dans de nombreux domaines, notamment la validation de données, l'analyse syntaxique, la coloration syntaxique et bien d'autres.

Par exemple, vous pouvez rapidement valider une adresse e-mail en JavaScript :

javascript
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailRegex.test("[email protected]")); // true

Remarque : Il s'agit d'un motif simplifié. Pour la validation en production, envisagez des règles plus strictes ou des bibliothèques dédiées.

Où la Regex est-elle utilisée :

  • Développement Web : Validation des champs de formulaire, analyse d'URL et recherche dans le contenu.
  • Analyse de données : Extraction de motifs spécifiques à partir de grands ensembles de données.
  • Édition de texte : Recherche et remplacement de texte dans des documents ou des bases de code.
  • Langages de programmation : La plupart des langages de programmation modernes, y compris JavaScript, prennent en charge la regex.

Référence rapide : Drapeaux et quantificateurs

CatégorieSymbole/DrapeauDescription
DrapeauxiCorrespondance insensible à la casse
gCorrespondance globale (trouve toutes les correspondances)
mMode multiligne (^ et $ correspondent aux limites de ligne)
sMode dotall (. correspond aux sauts de ligne). Nécessite le support ES2018+.
uMode Unicode
yMode collant (correspond uniquement à partir de lastIndex)
Quantificateurs*0 ou plusieurs fois
+1 ou plusieurs fois
?0 ou 1 fois
{n}Exactement n fois
{n,}n ou plus de fois
{n,m}Entre n et m fois

Objectifs d'apprentissage

En explorant les sujets suivants, vous acquérirez une compréhension complète des expressions régulières en JavaScript :

  1. Motifs et drapeaux : Apprenez les bases de la construction de motifs regex et l'impact des différents drapeaux (i, g, m, s, u, y) sur le comportement de la regex.
  2. Classes de caractères : Comprenez comment faire correspondre différents types de caractères à l'aide d'ensembles prédéfinis.
  3. Support Unicode : Découvrez l'utilisation du drapeau u et des échappements de propriétés Unicode pour gérer les textes multilingues.
  4. Ancres : Utilisez des ancres comme ^ et $ pour faire correspondre le début et la fin des chaînes.
  5. Mode multiligne : Implémentez le drapeau m pour activer la correspondance de chaînes multilignes.
  6. Limites de mots : Utilisez `\b` pour détecter les limites de mots dans le texte.
  7. Échappement des caractères spéciaux : Apprenez à échapper les caractères spéciaux pour les inclure dans les motifs.
  8. Ensembles et plages : Définissez des ensembles et des plages de caractères pour une correspondance plus flexible.
  9. Quantificateurs : Utilisez des quantificateurs (+, *, ?, {n}) pour spécifier le nombre d'occurrences.
  10. Quantificateurs gourmands et paresseux : Différenciez les quantificateurs gourmands et paresseux pour contrôler le comportement de la correspondance.
  11. Groupes de capture : Utilisez les parenthèses pour capturer des groupes de caractères en vue d'une utilisation ultérieure.
  12. Rétro-références : Réutilisez les groupes capturés au sein de la même regex à l'aide de rétro-références.
  13. Alternance : Faites correspondre l'un des plusieurs motifs possibles à l'aide de l'opérateur d'alternance (|).
  14. Lookahead et Lookbehind : Appliquez les assertions lookahead et lookbehind pour les assertions de largeur nulle.
  15. Backtracking catastrophique : Identifiez et atténuez les problèmes de performance causés par le backtracking.

À la fin de ces leçons, vous serez à même de créer efficacement des motifs regex pour diverses tâches de traitement de texte en JavaScript.

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.