IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Découpage de string


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2003
    Messages : 37
    Par défaut Découpage de string
    Bonjour

    Source de la page web :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <li class="recipe-ingredients__list__item">
    					<img class="ingredients-list__item__icon" src="https://image.jpg"><div><span class="recipe-ingredient-qt" data-base-qt="120">120</span>
    						<p class="name_singular" data-name-singular="g  de beurre" style="display: none;"></p>
    						<p class="name_plural" data-name-plural="g de  beurre" style="display: none;"></p>
    						<p class="complement_singular" data-complement-singular="" style="display: none;"></p>
    						<p class="complement_plural" data-complement-plural="" style="display: none;"></p>
    					       <span class="ingredient">g de  beurre </span><span class="recipe-ingredient__complement"></span></div>				</li>
     
    <li class="recipe-ingredients__list__item">
    					<img class="ingredients-list__item__icon" src="https://image.afcdn.com/recipe/20170607/67505_w100h100c1cx350cy350.jpg"><div><span class="recipe-ingredient-qt" data-base-qt="4">4</span>
     
    						<p class="name_singular" data-name-singular=" oeuf" style="display: none;"></p>
    						<p class="name_plural" data-name-plural="  oeufs" style="display: none;"></p>
    						<p class="complement_singular" data-complement-singular="" style="display: none;"></p>
    						<p class="complement_plural" data-complement-plural="" style="display: none;"></p>
    					       <span class="ingredient">  oeufs </span><span class="recipe-ingredient__complement"></span></div>				</li>


    Si je fais ceci par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.recipe-ingredients__list').children('.recipe-ingredients__list__item').text().toString().replace(/(\t\r\n|\n|\r|\t)/g, '');
    Cela me sort un string du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "6 cuillère à soupe d'huile d'olive vierge extra1 yaourt nature bien égoutté2 cuillère à soupe de jus de citron 1 gousse d'ail pilé1 cuillère à café de sucre 1 cuillère à café d'origan frais haché1 cuillère à café de sel 1/2 cuillère à café de poivre 4 pain pita ronds1/2 laitue 1 oignon 1/2 concombre 1 tomate pas trop mûre1/2 poivron vert 150 g de feta 12 olives dénoyautés"
    Pas très propre, les chiffres sont collés au texte. Je souhaiterai donc juste prendre : <span class="recipe-ingredient-qt"> concater avec <span class="ingredient"> avec un split pour séparer la liste. Le but est d'avoir ce genre de résultat :

    6 cuillère à soupe d'huile d'olive vierge extra
    1 yaourt nature bien égoutté
    etc...

    Des idées ?

  2. #2
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    C'est une question sur les expressions régulières du coup, pas du tout sur node.js.

    Je déplace en général.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    pourquoi tout jeter dans le même sac, alors qu'on peut trier avant ?
    Il suffit de cibler les bons éléments.

    une solution :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $(function() {
      let ingredient = []; // array
      let ii = 0;
      $(".recipe-ingredients__list .recipe-ingredients__list__item").each( // pour chaque item
        function() {
          ingredient[ii] = 
            ($(this).find('.recipe-ingredient-qt').text()
           + $(this).find('.ingredient').text()
            ).replace(/\s{2,}/g, ' '); // remplace les espaces multiples
          ii++;
        }
      );
     
      // affichage et mise en forme de la liste des ingrédients
    //  let recette_list = ingredient.join("<br />"); // liste simple
      let recette_list = "<ul><li>" + ingredient.join("</li><li>") + "</li></ul>"; // liste à puces
      $("#recette").html(recette_list);
    });
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="recette"></div>


    @Marco46
    Rien à voir avec les regex, donc
    Dernière modification par Invité ; 09/07/2018 à 11h29.

  4. #4
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Oui je sais pas pourquoi j'ai parlé de regex, c'était trop tôt probablement

  5. #5
    Invité
    Invité(e)
    Par défaut
    Non... c'est c'était (avant modif.) dans le titre !

    Mais jQuery fait bien le job, sans regex, donc.
    Dernière modification par Invité ; 10/07/2018 à 14h16.

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2003
    Messages : 37
    Par défaut
    Merci @jreaux62

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Découpage de string
    Par makia42 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/04/2010, 11h28
  2. Découpage de string
    Par makia42 dans le forum Langage
    Réponses: 6
    Dernier message: 20/04/2010, 13h28
  3. [Découpage chaine String et decalages binaires]
    Par moulefrite dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/12/2008, 15h27
  4. Découpage dun string dans l'espace
    Par Clad3 dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/03/2005, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo