Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Javascript]Expressions régulière

Ungreedy ?

Sujet résolu
    17 janvier 2008 à 21:23:10

    Bonjour,
    Je cherche un moyen, en js, de reprduire l'option 'Ungreedy' de php, U pour les regex pcre.
    Voici un code de test :
    http://rafb.net/p/xwlsBm63.txt
    [Pas posté ici car ça fait bugger le message]
    Si vous testez le code ci-dessus avec 2 balises [b] comme ça :

    Citation : Pas de titre

    [b]lala[/b]
    lili
    [b]lulu[/b]


    la regex transforme ceci en
    1. <strong>lala[/b]
    2. lili
    3. [b]lulu</strong>

    Au lieu de
    1. <strong>lala</strong>
    2. lili
    3. <strong>lulu<strong>


    Savez-vous comment faire ? Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2008 à 12:10:59

      Je pense que l'option u n'existe pas en javascript mais au lieu de faire un regex compliquer en prenant en compte le texte entre les balises pourquoi ne pas remplacer simplement les balises? ;)

      1. function regex(t)
      2. {
      3. t = t.replace(/\[b\]/g, '<strong>');
      4. t = t.replace(/\[\/b\]/g, '</strong>');
      5. return t;
      6. }
      • Partager sur Facebook
      • Partager sur Twitter
        18 janvier 2008 à 13:37:39

        Non c'est pas une regex compliquée =)

        J'ai besoin de faire ce type de parsage, l'exemple que j'ai donné n'est... qu'un exemple :p , un code simplifié pour pouvoir tester.

        Non, à ma connaissance l'option U n'existe aps en JS
        • Partager sur Facebook
        • Partager sur Twitter
          18 janvier 2008 à 13:52:11

          Ok alors voici, je pense, une solution pour ton regex ;)

          1. txt = txt.replace(/\[b\](\w+)\[\/b\]/g, '<strong>$1</strong>');


          Source: clique ici



          • Partager sur Facebook
          • Partager sur Twitter
            18 janvier 2008 à 16:32:13

            http://www.siteduzero.com/forum-83-173639-foire-aux-questions-x-html---css---javascript.html#r1597142

            Il faut rajouter un "?" après le quantificateur pour inverser la tendance à la "gourmandise".
            1. //Mode greedy:
            2. '< Test >< Test >'.match(/<(.*)>/gi);
            3. //==>
            4. //["< Test >< Test >"]
            5. //Rajout de '?' mode ungreedy:
            6. '< Test >< Test >'.match(/<(.*?)>/gi);
            7. //=>
            8. //["< Test >", "< Test >"]
            • Partager sur Facebook
            • Partager sur Twitter
              19 janvier 2008 à 18:58:40

              Ahhh je me souviens maintenant :D
              Merci beaucoup :)
              • Partager sur Facebook
              • Partager sur Twitter
                5 novembre 2008 à 11:09:19

                Bonjour!

                Pourquoi poster dans le forum xHTML/CSS pour un sujet dont le titre précise bien qu'il s'agît de Javascript? Là, ça m'échappe, y'a pourtant rien de compliqué à cliquer sur le bon mot...

                Topic déplacé, donc.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 novembre 2008 à 21:28:40

                  Wow, un déterrage par un modo :p (le forum javascript n'existait pas à ce moment là, dommage je suis plus très actif maintenant)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Javascript]Expressions régulière

                  × 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