Exercice 28/38

Soit la variable var1 de type string et qui contiennent du texte.
Dans le fichier "script.js" :

  • déclarez la variable result;
  • remplacez toutes les occurrences du mot "matin" dans var1 par "soir";
  • affectez le texte modifié à result;
  • cliquez sur "Soumettre ma réponse".

Leçon 28/38

Dans une chaîne de caractères, il peut être utile de remplacer une occurrence par une autre. Pour cela il y a la fonction replace().

À quoi ça sert ?

  • replace() remplace soit la première occurrence d'un mot soit toutes les occurrences d'un mot par un autre dans une chaîne de caractères et retourne la chaîne modifiée;
  • si vous indiquez un mot spécifique à remplacer et qu'il apparaît plusieurs fois dans la chaîne, seule la première occurrence sera remplacée;
  • pour remplacer toutes les occurrences d'un mot, il faut utiliser une expression régulière;

Exemple :

var chaine = "Mr Dupond et Dupont sont policiers.";
var resultat1 = chaine.replace("Dupon","xxx");
var resultat2 = chaine.replace(/Dupon/g,"xxx");
alert(resultat1); // Affiche ""Mr xxxd et Dupont sont policiers."
alert(resultat2); // Affiche ""Mr xxxd et xxxt sont policiers."

Remarque :

Ici, le code /Dupon/g est une expression régulière qui dit de rechercher le texte "Dupon" de façon globale (g) dans la chaîne de caractère. Ainsi toutes les occurrences seront remplacées.

Commentaires les mieux notés

  • florent.pontiere-50

    Bonjour, je ne comprends pas, depuis le début du javascript, aucun résultat n'apparait lorsque je fais les exercices, pourriez-vous vérifier svp ? Merci à vous

  • viesephora

    bonjour la fontion replace ne fonctionne pas avec moi je ne compred pas pourquoi. var result= var1.replace(/blue/g, "red"); alert(result);

  • Magalislk

    Toujours faux... var result = var1.replace(/blue/g, "red");

  • mram Administrateur

    Il y a un juste un espace en trop avant "red" ...

19 Commentaires

  • viesephora

    viesephora

    bonjour la fontion replace ne fonctionne pas avec moi je ne compred pas pourquoi. var result= var1.replace(/blue/g, "red"); alert(result);

    le 14/11/2017 à 16h03

  • mram

    mram Administrateur

    Bonjour, votre dernier essai semble correct. Peut-être pas d'espace devant "red" en effet.

    le 16/11/2017 à 18h31

  • Magalislk

    Magalislk

    Toujours faux... var result = var1.replace(/blue/g, "red");

    le 11/07/2016 à 21h03

  • mram

    mram Administrateur

    Il y a un juste un espace en trop avant "red" ...

    le 11/07/2016 à 22h49

  • bsmeyers84

    bsmeyers84

    celà me semble juste mais quand je clique sur soumettre ma réponse il me dit 'AVEZ VOUS UTILISE LA FONCTION 'REPLACE()' CORRECTEMENT

    le 18/07/2016 à 15h54

  • Magalislk

    Magalislk

    Bonjour, en quoi mon code est-il faux? Merci! var result = var1.replace(/blue/,"red");

    le 11/07/2016 à 20h53

  • mram

    mram Administrateur

    Essayez avec des guillemets doubles autour de "red" .

    le 19/07/2016 à 14h19

  • alexpers

    alexpers

    Bonjour, il y a une coquille "seule la premmière occurrence" > "première". Merci ! Très bon boulot sinon, c'est très instructif :)

    le 07/07/2016 à 14h49

  • fahad.abdillah

    fahad.abdillah

    je ne trouve pas mon erreur

    le 28/10/2017 à 21h22

  • mram

    mram Administrateur

    Bonjour, la ligne 1 est inutile. La variable var1 est créée à l'initialisation de l'exercice et contient déjà du texte. Ensuite, il faut remplacer toutes les occurrences du mot "blue" et pas juste la première rencontrée.

    le 30/10/2017 à 01h36

  • asmaboutouba-88

    asmaboutouba-88

    Bonne réponse : var result = var1.replace(/blue/g,"red"); alert(result); merci à viesephora!

    le 01/03/2018 à 13h22

  • nkeshimanabrice-37

    nkeshimanabrice-37

    pouvez-vous corriger mon code....

    le 30/11/2018 à 11h42

  • meriam

    meriam Administrateur

    lisez bien l'énoncé remplacez toutes les occurrences du mot "matin" dans var1 par "soir";

    le 30/11/2018 à 11h55

  • ludovicthiolet

    ludovicthiolet

    Bonjour, Alors encore désolé de revenir une fois de plus sur l'énoncé du cours, mais pour appliquer le changement à toutes les occurrences on nous montre l'exemple en écrivant : " var resultat1 = chaine.replace("Dupon","xxx"); var resultat2 = chaine.replace(/Dupon/g,"xxx"); alert(resultat1); alert(resultat2); ". Mais cela trompe celui qui fera par la suite l'exercice (du moins cela a été le cas pour moi avant que je comprenne pourquoi), car à aucun moment dans l'exercice on ne doit écrire " var result1 " ou " var result2 ", mais au contraire simplement écrire " var result " uniquement, et par voie de conséquence ne jamais écrire " alert(result1) " ou " alert(result2) " mais au contraire simplement " alert(result) ". Ais je tord ?

    le 04/10/2017 à 13h59

  • mram

    mram Administrateur

    Bonjour, oui en effet : il faut faire la distinction entre les exemples théoriques et les instructions qui sont demandées.

    le 09/10/2017 à 00h12

  • virg69

    virg69

    je ne comprend pas: pouvez vous m expliquer svp? result" var var1= "Mr blue et blue sont policiers"; var result= var1.replace(/blue/g,"red"); alert(result); // Affiche "" Mr red et red sont policiers" voici la reponse result" ne contient pas le texte attendu. c est le 3eme exercice ou, je n arrive pas a valider a cause de alert(result);.

    le 26/09/2017 à 16h31

  • mram

    mram Administrateur

    Bonjour, la première ligne est inutile. Il faut juste utiliser var1 qui contient déjà du texte.

    le 29/09/2017 à 02h12

  • mickaelmangaud

    mickaelmangaud

    toujours un problème avec result dans cet exercice car celà fonctionne quand je teste avec mon propre éditeur dans mon propre fichier js

    le 28/09/2017 à 16h27

  • mram

    mram Administrateur

    Bonjour, la ligne 1 est inutile. La variable var1 contient déjà du texte.

    le 29/09/2017 à 02h56

  • Arnaud

    Arnaud

    il y a une erreur dans l'énoncé de la question : remplacez toutes les occurrences du mot "matin" dans var1 par "soir"; cela laisse entendre qu'il faut mettre un /g ce que j'ai fait au début, mais j'ai eu un message disant de remplacer uniquement le premier, donc il faudrait revoir la question ;)

    le 22/04/2019 à 10h29

  • nkeshimanabrice-37

    nkeshimanabrice-37

    merci meriam...

    le 19/03/2019 à 08h30

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Remplacer un mot par un autre</title> <script src="script.js"></script> </head> <body> </body> </html>
var var1 = 'Le soleil léger du matin'