Expressions régulières
Lancer un motif sur du texte, c'est une expression régulière. /tea/ demande seulement si tea est là. replace fabrique une chaîne neuve et place mint à cet endroit. Ici note vaut Order: tea, et la ligne affichée vaut true / Order: mint.
La carte rangeait, cette page fouille
La page de la carte s'était arrêtée sur lida / mint / 2 : c'était du stockage. Ici on ne range aucun invité. On fouille une chaîne. Une recherche ratée rend false ou null. Elle ne lance pas d'erreur.
Déjà dans le texte, ou absent
Le drapeau i ignore la casse, donc /tea/i correspond à Tea. Pour le reste, le motif est déjà assis dans mint tea : /tea/.test("mint tea") vaut true. lemon ne le porte pas : /tea/.test("lemon") vaut false.
console.log(/tea/.test("mint tea"));
console.log(/tea/.test("lemon"));
Le journal affiche true, puis false. Un point remplace un seul caractère, sauf un saut de ligne, si bien que /t.a/ correspond aussi à tea. Un vrai point s'écrit avec une barre oblique inverse, puis un point : .
Du premier caractère au dernier
^ désigne le début, $ désigne la fin. /^tea$/ accepte tea et refuse mint tea. Sans ces deux marques, /tea/ réussit encore au milieu d'une note plus longue.
console.log(/^tea$/.test("tea"));
console.log(/^tea$/.test("mint tea"));
Le journal dit true, puis false. mint tea contient les lettres, sans être uniquement tea.
Chaque copie, puis une chaîne neuve
Avec le drapeau g, match rend chaque copie. replace avec g échange chaque copie et rend une chaîne neuve. note d'origine reste tant que tu n'assignes pas le résultat.
const note = "tea and tea";
console.log(note.match(/tea/g));
console.log(note.replace(/tea/g, "mint"));
console.log(note);
Le journal de match est un tableau de deux chaînes tea. Celui de replace est mint and mint. Le troisième est encore tea and tea, car replace n'a pas modifié note. Sans g, seul le premier tea change. Si rien ne correspond, match rend null, pas un tableau vide.
La forme de la réponse choisit la méthode
Choisis la méthode d'après la forme de la réponse que tu veux.
📊 Ce que chaque méthode rend
| Méthode | Forme du résultat | Sur cette note |
|---|---|---|
/tea/.test(note) |
true ou false | true pour Order: tea |
note.match(/tea/) |
un tableau d'un seul succès, ou null | le mot tea et sa place |
note.match(/tea/g) |
chaque copie, ou null | deux succès dans tea and tea |
note.replace(/tea/, "mint") |
une chaîne neuve | Order: mint |
test répond par oui ou par non. match te donne les morceaux. replace te donne le texte réécrit. Assigne ce texte si tu veux le garder.
La page écrit les deux résultats
La page teste Order: tea, remplace la boisson et écrit les deux résultats.
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const note = "Order: tea";
const found = /tea/.test(note);
const next = note.replace(/tea/, "mint");
document.querySelector("#line").textContent = found + " / " + next;
</script>
</body>
</html>
La ligne se lit true / Order: mint. note lui-même vaut encore Order: tea. lida / mint / 2 appartenait à la page de la carte.
Cinq essais courts
- Tester mint tea avec /tea/. Le résultat est true.
- Tester lemon avec /tea/. Le résultat est false.
- Tester mint tea avec /^tea$/. Le résultat est false.
- Chercher tea and tea avec /tea/g. La longueur du tableau est 2.
- Lire la page. La ligne est true / Order: mint.
Ratages, et ce qu'il faut retenir
Sans ^ et sans $ un motif correspond à un morceau, pas à la note entière. replace ne modifie pas l'original.
- Ne lis pas null.length quand match n'a rien trouvé
- N'attends pas que replace change note sur place
- Ne mets pas g sur une expression que tu réutilises avec test, car elle se souvient de l'endroit où elle s'est arrêtée
- Écris un vrai point avec une barre oblique inverse puis un point
- Ne lis pas la ligne comme lida / mint / 2
À retenir
- test répond true ou false
- /^tea$/ n'accepte que la chaîne entière tea
- match avec g liste chaque copie ou rend null
- replace rend une chaîne neuve
- la ligne de la page est true / Order: mint
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut