Chargement...

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.

Le texte contient-il tea

javascript
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.

La commande entière

javascript
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.

Les deux copies, puis l'échange

javascript
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.

La ligne issue de test et replace

html
<!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

  1. Tester mint tea avec /tea/. Le résultat est true.
  2. Tester lemon avec /tea/. Le résultat est false.
  3. Tester mint tea avec /^tea$/. Le résultat est false.
  4. Chercher tea and tea avec /tea/g. La longueur du tableau est 2.
  5. 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

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 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