Partage
  • Partager sur Facebook
  • Partager sur Twitter

Javascript LeetSpeak

Changer une occurrence dans une chaîne

    24 mai 2017 à 16:41:14

    Bonjour,

    Je souhaite changer quelques occurrence dans une chaine avec l'alphabet Leet Speak, je n'y arrive pas. Pourriez-vous m'aider?

    //Information sur le mot

    var mot = "anaconda"; {

        console.log("Le mot " + mot + " contient " + mot.length + " caractères");

        console.log("Il s'écrit en minuscule " + mot.toLowerCase());

        console.log("Il s'écrit en majuscule " + mot.toUpperCase());

    }

    //Comptage du nombre de voyelles et de consonnes

    function compterNbVoyelle(mot) {

      var nbVoyelle = 0;

      for (i = 0; i < mot.length; i++) {

        if (mot[i].toLowerCase() === "a" || mot[i].toLowerCase() === "e" || mot[i].toLowerCase() === "y" || mot[i].toLowerCase() === "u" || mot[i].toLowerCase() === "i" || mot[i].toLowerCase() === "o") {

          nbVoyelle++;

        }

      }

      console.log(mot + " contient " + nbVoyelle + " voyelle(s) " + (mot.length - nbVoyelle) + " consonne(s).");

    }

    compterNbVoyelle("anaconda");

    //Inversion du mot

    function inverser(mot) {

        var motInverse = "";

        for (var i = 0; i < mot.length; i++) {

            motInverse = mot[i] + motInverse;

        }

        console.log (motInverse);

        return motInverse;

    }

    //Palindrome ou pas palindrome?

    if (mot === inverser(mot)){

        console.log(mot + " est un palindrome");

    else {

        console.log(mot + " n'est pas un palindrome");

    }

    // Leet Speak

    function convertirEnLeetSpeak(mot){

        var motLeet = "";

        for(var i = 0 ; i < mot.length ; i++){

            motLeet = motLeet + mot[i];

        console.log(motLeet);

            return motLeet;

    }

        function changerLettreMot(){

        var lettreMot = "lettre";

        switch(lettre[i]){

            case "a":

            console.log(lettreMot[i]==="4");

            break;

            case "o":

            console.log (lettreMot[i] === "0");

            break;

        }

    }

        console.log("en leet : " + motLeet);

        return (mot);

    }

    -
    Edité par AurélieDejean 27 mai 2017 à 11:12:47

    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2017 à 18:01:29

      Hello.

      Merci à l'avenir d'utiliser le colorateur de code intégré au forum, pour qu'on y voit quelque chose.

      Ta logique où tu comptes le nombre de voyelles est bonne. Il te suffit de faire la même chose (parcourir tous les caractères), et si tu tombes sur un caractère spécial à changer en "leet", tu le remplaces dans ta nouvelle chaîne.

      Cela donnerait un truc du genre :

      var message = "Ceci est un message sans leet speak !";
      
      var messageLeet = "";
      
      for (var i = 0; i < message.length; i++) {
        if (message[i].toLowerCase() === "l") { messageLeet += "1"; }
        else if (message[i].toLowerCase() === "e") { messageLeet += "3"; }
        else if (message[i].toLowerCase() === "a") { messageLeet += "4"; }
        else if (message[i].toLowerCase() === "t") { messageLeet += "7"; }
        else if (message[i].toLowerCase() === "s") { messageLeet += "5"; }
        else if (message[i].toLowerCase() === "o") { messageLeet += "0"; }
        else { messageLeet += message[i].toLowerCase(); }
      }
      
      console.log(messageLeet);


      Et sinon, voici une autre version plus compacte et fonctionnelle, qui utilise la méthode .replace() :

      function replaceChr(chr) {
        var chrs = {'a':'4','e':'3','l':'1','t':'7','s':'5','o':'0'};
        return chrs[chr.toLowerCase()] || chr;
      }
      
      var message = "Ceci est un message sans leet speak !";
      
      console.log( message.replace(/[aeltso]/g, replaceChr) );



      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2017 à 15:38:26

        Bonjour,

        Merci pour l'aide. Par contre comment utilise-t-on le colorateur de code intégré au forum?

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          29 mai 2017 à 15:34:08

          var motLeet = "";
              for(var i = 0 ; i < mot.length ; i++){
              if (mot[i].toLowerCase() === "e"){motLeet += "3";}
              else if(mot[i].toLowerCase() === "a"){motLeet += "4";}
              else if (mot[i].toLowerCase() === "o"){motLeet += "O"}
              else {motLeet += mot[i].toLowerCase();}
              }
          console.log(mot + " s'écrit " + motLeet + " en LeetSpeak.");
          Merci pour l'info
          • Partager sur Facebook
          • Partager sur Twitter

          Javascript LeetSpeak

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown