Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modifier une phrase contenue dans une variable

Modifier et mettre en forme une phrase contenue dans une variable

Sujet résolu
    2 décembre 2024 à 22:28:13

    Bonjour à toutes et tous,

    Je souhaite via JavaScript mettre en forme une phrase complète contenant des caractères de séparation un peu spéciaux.

    Pour expliquer : ce sont des logs (traces) et l’idée est qu’un utilisateur copie / colle un log (une ligne, trace) de manière brut dans une zone de texte de formulaire puis en pressant un bouton html la ligne se met en forme automatiquement pour être plus lisible par tout le monde. J'essaye de faire la mise en forme via JavaScript.

    Exemple fictif :

    La trace :

    PointA    xtf_0245    pointB    xtf_0245    02/12/2024 15h35    xtf_0245    02/12/2024 15h36     xtf_0245    OK
    Devient après mise en forme automatique : 
    Du PointA vers le PointB le 02/12/2024 à 15h35 – OK
    Voici ce que j’ai essayé de faire, mais j'avoue que je bloque un peu : https://jsfiddle.net/6af2ptL5/

    let LaTrace = "pointA    xtf_0245    PointB    xtf_0245    02/12/2024 15h35    xtf_0245    02/12/2024 15h36     xtf_0245    OK";
    
    // Supprimer le terme/code xtf_0245
    let SpecialCharacters = LaTrace.replace(/xtf_0245/g, "");
    
    // Supprimer les espaces en trop et découper la variable LaTrace en tableau
    let MyArray = SpecialCharacters.replace(/\s+/g, ' ').split(" ");
    
    // Appeler et afficher un élément du tableau
    let WORD = MyArray[0];
    alert(WORD)

    Les mots de la trace log sont scindés en données dans un tableau avec split(" ") et je me suis dit qu'il serait peut-être possible de concaténer certains éléments du tableau pour construire une phrase. Je ne sais pas si mon idée est bonne ou complètement tirée par les cheveux. Puis il fraudais que je rajoute "du, vers, le...".

    Pouvez-vous m’aider s’il vous plaît ?

    Merci :)

    -
    Edité par MBMI 2 décembre 2024 à 22:36:12

    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2024 à 23:08:55

      Bonsoir, il y à toujours 4 caractères d’espacement entre les mots ou cela est variable?

      Comme ceci? (vite fait)

      let LaTrace = "pointA    xtf_0245    PointB    xtf_0245    02/12/2024 15h35    xtf_0245    02/12/2024 15h36     xtf_0245    OK";
      
          // Supprimer les espaces en trop 
          let strTrace = LaTrace.replace(/    /g, " ");
      
          // et découper la variable LaTrace en tableau
          let arrayTrace = strTrace.split(" ");
          console.log(arrayTrace);
      
          // mise en forme du message
          let statusItem = arrayTrace.length - 1;
          let messageTrace = `Du ${arrayTrace['0']} vers le ${arrayTrace['2']} le ${arrayTrace['4']} à ${arrayTrace['5']} – ${arrayTrace[statusItem]}`;
      
          // affichage 
          console.log(messageTrace); // Du pointA vers le PointB le 02/12/2024 à 15h35 – OK


      Mieux split() peut prendre directement une regex. Soit :

      let LaTrace = "pointA    xtf_0245    PointB    xtf_0245    02/12/2024 15h35    xtf_0245    02/12/2024 15h36     xtf_0245    OK";
      
          // Supprimer les espaces en trop et découper la variable LaTrace en tableau
          re = /\s+/gi
          let arrayTrace = LaTrace.split(re);
          console.log(arrayTrace);
      
          // mise en forme du message
          let statusItem = arrayTrace.length - 1;
          let messageTrace = `Du ${arrayTrace['0']} vers le ${arrayTrace['2']} le ${arrayTrace['4']} à ${arrayTrace['5']} – ${arrayTrace[statusItem]}`;
      
          // affichage 
          console.log(messageTrace); // Du pointA vers le PointB le 02/12/2024 à 15h35 – OK

      https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/String/split

      https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Regular_expressions

      -
      Edité par AbcAbc6 3 décembre 2024 à 0:05:08

      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2024 à 22:09:59

        Bonsoir,

        Merci pour la réponse rapide.

        Cela fonctionne parfaitement !

            | il y à toujours 4 caractères d’espacement entre les mots ou cela est variable?

        A priori oui, j'ai testé avec des traces récupérées à mon travail et ça fonctionne parfaitement.

        Voir cette version de test avec formulaire HTML et JavaScript (pas de CSS) : https://jsfiddle.net/k8Lmbh0e/5/

        Je vais arranger un peu tout ça (nom des variables, des id, etc.)

        Encore merci. :D

        -
        Edité par MBMI 3 décembre 2024 à 22:12:49

        • Partager sur Facebook
        • Partager sur Twitter

        Modifier une phrase contenue dans une variable

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown