Expressions régulières en JavaScript avec des exemples pour Node.js

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 des exemples pour Node.js



Les expressions régulières (regex ou regexp) sont un outil puissant pour rechercher, remplacer et extraire des informations textuelles. En JavaScript et Node.js, elles sont utilisées partout : de la validation de formulaires à l'analyse de logs et au traitement de requêtes. Cet article vous aidera à maîtriser la syntaxe des expressions régulières à travers des exemples pratiques que vous pouvez exécuter immédiatement dans Node.js.



1. Création d'expressions régulières en JavaScript



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



  • Syntaxe littérale — le motif est placé entre barres obliques /pattern/flags. Recommandée pour les motifs statiques.
  • Constructeur RegExp — new RegExp('pattern', 'flags'). Utilisé si le motif est formé dynamiquement.


// Méthode littéraleconst regexLiteral = /hello/i;

// Constructeur RegExpconst pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');

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


2. Méthodes principales pour travailler avec les expressions régulières



Dans Node.js et les navigateurs, quatre méthodes clés sont disponibles pour travailler avec les regex. Examinons chacune avec des exemples.



Méthode test()

Vérifie si la chaîne contient une correspondance avec le motif. Renvoie true ou false.



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


Méthode exec()

Recherche une correspondance et renvoie un tableau avec les détails (la correspondance elle-même, les groupes, l'index, la chaîne d'entrée). S'il n'y a pas de correspondance — null.



const text = 'Prix : 1500 roubles, réduction : 300 roubles';const regex = /(\\d+)\\sroubles/g;let match;

while ((match = regex.exec(text)) !== null) { console.log(`Trouvé : ${match[1]} roubles`); // Affichage : "Trouvé : 1500 roubles" // Affichage : "Trouvé : 300 roubles"}


Méthode match()

Appelée sur une chaîne. Renvoie un tableau de correspondances (avec le drapeau g) ou des informations détaillées (sans le drapeau g).



const logLine = 'Erreur 404 : page non trouvée';const errorRegex = /(\\d{3})\\s?:\\s(.+)/;const result = logLine.match(errorRegex);

console.log(result[0]); // '404 : page non trouvée'console.log(result[1]); // '404'console.log(result[2]); // 'page non trouvée'


Méthode replace()

Remplace les correspondances par la chaîne spécifiée ou le résultat d'une fonction. Idéal pour le formatage des données.



const phone = '+7 (999) 123-45-67';const cleanPhone = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // '79991234567'

// Remplacement avec utilisation de groupesconst date = '2024-01-15';const formattedDate = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formattedDate); // '15.01.2024'


3. Symboles principaux et drapeaux des expressions régulières



Pour travailler efficacement avec les regex, il est nécessaire de comprendre les métacaractères et drapeaux de base. Voici les principaux :



Symboles de recherche

  • . — n'importe quel caractère (sauf saut de ligne)
  • \\d — chiffre (0-9)
  • \\w — lettre, chiffre ou tiret bas
  • \\s — caractère d'espacement
  • ^ — début de chaîne
  • $ — fin de chaîne
  • * — 0 ou plusieurs répétitions
  • + — 1 ou plusieurs répétitions
  • ? — 0 ou 1 répétition
  • {n,m} — de n à m répétitions


Drapeaux

  • g — recherche globale (toutes les correspondances)

Blogs

Book Recommendations