Expressions régulières en JavaScript avec exemples pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction aux expressions régulières JavaScript

\n

Les expressions régulières (regex ou regexp) sont un outil puissant pour rechercher, remplacer et valider des chaînes de caractères selon un motif donné. En JavaScript (et Node.js), elles sont implémentées via l'objet natif RegExp.

\n

Pour un débutant, la syntaxe des regex peut sembler intimidante, mais il s'agit en réalité d'un langage de description de motifs. En maîtrisant les constructions de base, vous pourrez :

\n
    \n
  • Valider des emails, téléphones, URL
  • \n
  • Extraire des données d'un texte (parsing)
  • \n
  • Remplacer des sous-chaînes selon des règles complexes
  • \n
  • Filtrer et traiter les saisies utilisateur
  • \n
\n

Dans cet article, nous allons étudier les expressions régulières en JavaScript avec des exemples sur Node.js. Tous les exemples peuvent être exécutés dans la console ou dans un environnement d'exécution.

\n\n

Création d'une expression régulière en JS

\n

En JavaScript, il existe deux façons de créer une regex :

\n

1. Syntaxe littérale (recommandée)

\n
const pattern = /hello/;  // Recherche le mot "hello"
\n

Le motif est placé entre deux barres obliques. Après la barre oblique fermante, vous pouvez spécifier des drapeaux (par exemple, i pour une recherche insensible à la casse).

\n\n

2. Constructeur RegExp

\n
const pattern = new RegExp('hello');  // Équivalent à /hello/
\n

Utilisé lorsque le motif est dynamique (construit à partir d'une variable).

\n\n

Drapeaux des expressions régulières

\n
    \n
  • i — ignorer la casse (/hello/i trouvera "Hello", "HELLO")
  • \n
  • g — recherche globale (trouve toutes les correspondances, pas seulement la première)
  • \n
  • m — mode multiligne (modifie le comportement des ancres ^ et $)
  • \n
  • s — le point correspond au caractère de saut de ligne
  • \n
  • u — support Unicode
  • \n
  • y — recherche adhésive (recherche uniquement à partir de la position lastIndex)
  • \n
\n
const regex = /javascript/gi;  // Recherche "javascript" globalement et sans tenir compte de la casse
\n\n

Méthodes principales pour travailler avec les regex en JavaScript

\n

Examinons les méthodes clés utilisées avec les expressions régulières.

\n\n

test() — vérification de la présence d'un motif

\n

Retourne true ou false. La méthode la plus rapide pour la validation.

\n
const emailPattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$/i;\nconsole.log(emailPattern.test('user@example.com')); // true\nconsole.log(emailPattern.test('invalid-email'));    // false
\n\n

exec() — recherche avec détails

\n

Retourne un tableau avec la correspondance et les groupes. Avec le drapeau g, il mémorise la position.

\n
const str = 'Prix : 100 €, réduction : 20 €';\nconst pricePattern = /(\\d+)\\s€/g;\nlet match;\nwhile ((match = pricePattern.exec(str)) !== null) {\n  console.log(`Trouvé : ${match[0]}, nombre : ${match[1]}`);\n}\n// Affichage :\n// Trouvé : 100 €, nombre : 100\n// Trouvé : 20 €, nombre : 20
\n\n

match() — recherche dans une chaîne

\n

Méthode de chaîne. Sans le drapeau g, retourne la première correspondance (comme exec). Avec le drapeau g, retourne un tableau de toutes les correspondances.

\n
const text = 'JS — c\'est JavaScript, ne confondez pas avec Java.';\nconst jsMatches = text.match(/Java\\w*/g);\nconsole.log(jsMatches); // ['JavaScript', 'Java']
\n\n

replace() — remplacement selon un motif

\n

Remplace les correspondances par une nouvelle chaîne. Prend en charge les caractères spéciaux ($1, $&).

\n
const phone = '+7 (123) 456-78-90';\nconst cleanPhone = phone.replace(/[\\s\\(\\)\\-]/g, '');\nconsole.log(cleanPhone); // +71234567890\n\n// Remplacement avec utilisation de groupes\nconst date = '2024-03-15';\nconst reversed = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');\nconsole.log(reversed); // 15.03.2024
\n\n

search() — index de la première correspondance

\n
const index = 'Hello world'.search(/world/);\nconsole.log(index); // 6                

Blogs

Book Recommendations