Expressions régulières en JavaScript avec exemples : en pratique

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

Expressions régulières en JavaScript avec exemples : en pratique



Les expressions régulières (RegExp) sont un outil puissant pour rechercher, remplacer et valider des chaînes de caractères. En JavaScript et Node.js, elles sont utilisées partout : de la validation de formulaires à l'analyse de logs. Dans cet article, nous allons aborder les bases de la syntaxe, les méthodes populaires et résoudre plusieurs problèmes pratiques.



1. Création d'une expression régulière



En JavaScript, il existe deux façons de créer une expression régulière :



  • Notation littérale (recommandée) : /pattern/flags
  • Constructeur new RegExp('pattern', 'flags')


Exemple :



// Notation littéraleconst regexLiteral = /hello/i;

// Constructeur (utile lorsque le motif est dynamique)const pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');

console.log(regexLiteral.test('Hello World')); // trueconsole.log(regexConstructor.test('HELLO')); // true


2. Méthodes principales de RegExp et String



Pour travailler avec les expressions régulières en JavaScript, on utilise deux types de méthodes : les méthodes de l'objet RegExp lui-même et les méthodes des chaînes de caractères.



2.1 Méthode test()

Vérifie s'il y a une correspondance dans la chaîne. Renvoie true ou false.



const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;console.log(emailRegex.test('user@example.com')); // trueconsole.log(emailRegex.test('invalid-email'));    // false


2.2 Méthode exec()

Recherche une correspondance et renvoie un tableau avec des informations détaillées (ou null). Utile pour extraire des données.



const str = 'Prix : 1500 roubles, réduction : 200 roubles';const priceRegex = /(\\d+)/g;let match;

while ((match = priceRegex.exec(str)) !== null) { console.log(`Nombre trouvé : ${match[1]}`);}// Affichage :// Nombre trouvé : 1500// Nombre trouvé : 200


2.3 Méthode de chaîne match()

Fonctionne de manière similaire à exec(), mais est appelée depuis la chaîne.



const text = 'JavaScript — c\'est génial ! JS est utilisé partout.';const result = text.match(/JS/g);console.log(result); // [ 'JS', 'JS' ]


2.4 Méthode de chaîne replace()

Remplace les correspondances trouvées par la chaîne spécifiée ou le résultat d'une fonction.



const phone = '+7 (123) 456-78-90';const cleaned = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleaned); // 71234567890

// Remplacement avec utilisation de groupes de captureconst date = '2024-03-15';const formatted = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formatted); // 15.03.2024


2.5 Méthode de chaîne search()

Renvoie l'index de la première correspondance ou -1.



const sentence = 'Apprenez JavaScript sur PythonLib';const index = sentence.search(/javascript/i);console.log(index); // 9


3. Drapeaux et caractères spéciaux : exemples pratiques



Les drapeaux modifient le comportement de la recherche. Les plus courants :

  • g — recherche globale (cherche toutes les correspondances, pas seulement la première).
  • i — recherche insensible à la casse.
  • m — mode multiligne (les ancres ^ et $ fonctionnent sur chaque ligne).


Exemple avec le drapeau m :



const multiLineText = `Première lignedeuxième ligneTroisième ligne`;

// Sans le drapeau mconsole.log(multiLineText.match(/^deuxième/)); // null

// Avec le drapeau mconsole.log(multiLineText.match(/^deuxième/m)); // [ 'deuxième' ]


Caractères spéciaux principaux



Blogs

Book Recommendations

Caractère Description