🏗 Structure de Base

Les regex sont entourées de / et peuvent inclure des modificateurs :

const regex = /motif/flags;

Exemple :

const regex = /hello/i;  // Recherche "hello" en ignorant la casse
console.log(regex.test("HELLO")); // true


🔍 Modificateurs (Flags)

ModificateurDescription
gGlobal (toutes les occurrences)
iIgnore la casse (maj/min)
mMultiligne (^ et $ fonctionnent par ligne)
s. capture aussi les retours Ă  la ligne
uActive le support Unicode
yRecherche ancrée (sticky)

Exemple :

const regex = /chat/gi;
console.log("Chat chat CHat".match(regex)); // ["Chat", "chat", "CHat"]

Négation :

SymboleSignification
\DTout sauf un chiffre ([^0-9])
\WTout sauf une lettre/chiffre ([^a-zA-Z0-9_])
\STout sauf un espace
\BPas une limite de mot

📏 Quantificateurs

SymboleSignificationExemple
*0 ou plusieurs fois/a*/ → "", “a”, “aaa”
+1 ou plusieurs fois/a+/ → “a”, “aaa” (pas "")
?0 ou 1 fois (optionnel)/colou?r/ → “color” ou “colour”
{n}Exactement n fois/a{3}/ → “aaa”
{n,}Au moins n fois/a{2,}/ → “aa”, “aaaa”
{n,m}Entre n et m fois/a{2,4}/ → “aa”, “aaa”, “aaaa”

🔀 Alternance (|)

SymboleSignificationExemple
`ab`“a” ou “b”

🚀 Ancres de Position (^ & $)

SymboleSignificationExemple
^Début de chaîne/^Hello/ → “Hello world”
$Fin de chaîne/world$/ → “Hello world”

🛠 Métacaractères

SymboleSignificationExemple
.N’importe quel caractère sauf retour à la ligne/c.t/ → “cat”, “cot”, “cut”
\dChiffre (0-9)/\d+/ → “42”, “123”
\wLettre, chiffre ou _/\w+/ → “hello_123”
\sEspace blanc/\s+/ → ” ” (espace, tab, saut de ligne)
\bDélimitation de mot/\bchat\b/ → “chat”, mais pas “château”
\nRetour Ă  la ligne/\n/
\tTabulation/\t/

🎯 Classes de Caractères

ClasseSignificationExemple
[abc]”a”, “b” ou “c”/[aeiou]/ → Trouve une voyelle
[a-z]Lettre minuscule de “a” à “z”/[a-z]/
[A-Z]Lettre majuscule de “A” à “Z”/[A-Z]/
[0-9]Chiffres de “0” à “9”/[0-9]/
[^abc]Tout sauf “a”, “b” ou “c”/[^aeiou]/ → Trouve une consonne

🔄 Groupes & Captures

SymboleSignificationExemple
(abc)Capture le groupe “abc”/(hello)/
(?:abc)Groupe sans capture/(?:hello)/
\1Référence à un groupe capturé/(\w+) \1/ → “hello hello”

Exemple :

const regex = /(\d{2})-(\d{2})-(\d{4})/;
const date = "12-05-2023".match(regex);
console.log(date[1]); // "12" (jour)
console.log(date[2]); // "05" (mois)
console.log(date[3]); // "2023" (année)

đź”§ Remplacement avec replace()

const texte = "123-ABC";
const regex = /\d+/;
console.log(texte.replace(regex, "XXX")); // "XXX-ABC"

🎯 Exemples Pratiques

✅ Vérifier une adresse e-mail

const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(regex.test("email@example.com")); // true

âś… Filtrer un input pour accepter uniquement des lettres

document.getElementById("textInput").addEventListener("input", function () {
    this.value = this.value.replace(/[^a-zA-ZĂ€-Ăż\s]/g, "");
});