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 :

erreur dans l'expression r�guli�re ?


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Avatar de Peanut
    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 421
    Par d�faut erreur dans l'expression r�guli�re ?
    Salut,

    je fais un petit script pour convertir du bbcode en html, mais le r�sultat n'est pas tout � fait celui attendu.
    Un soucis d'expression r�guli�re ? ou dans l'utilisation des variables ?

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Untitled Page</title>
    </head>
    <body>
     
        <script language="javascript">
     
            function tolabel(pControl) {
                document.getElementById("monlabel").innerHTML = txtBBCode2HTML(pControl.value);
            }
     
            function txtBBCode2HTML(texte) {
                // variables locales
                var regex;
     
                // [ b]texte gras[\b]
                regex = new RegExp("[ b](.+?)[ /b]"); //, "gi");
                texte = texte.replace(regex, "< strong>$1</strong>");
                alert(texte);
     
    //            // [ i]texte italique[\i]
    //            regex = new RegExp("\[i\](.+?)\[\/i\]", "gi");
    //            texte = texte.replace(regex, "< em>$1</em>");
     
                return texte;
            }</script>
     
        <textarea onfocusout="tolabel(this);"> [ b]gras[/b] [ i]italique[/i] [ u]souligné[/u] </textarea>
        <br />
        <label id="monlabel" name="monlabel">
            résultat
        </label>
    </body>
    </html>
    Si je passe �a en entr�e :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [ b]gras[/b] [ i]italique[/i] [ u]souligné[/u]
    Ca me donne �a en sortie :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [< strong>]gras[</strong>b] [ i]italique[/i] [ u]souligné[/u]

    alors que je voudrais �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    < strong>gras</strong> [ i]italique[/i] [ u]souligné[/u]
    Une id�e ?

    NB : j'ai d� rajouter des espace dans les balises pour pouvoir �crire ce post sans qu'ils soient interpr�t�s, ils ne sont bien �videmment pas pr�sent dans le code

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par d�faut
    Pourrais tu passer ton code en pi�ce jointe ?

  3. #3
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Salut,

    Cette expression /\[b\](.+)\[\/b\]/fonctionne avec les param�tres ig, tester ici.
    Attention il faut �chapper les slash (ou anti-slash, je sais jamais) si tu utilises l'objet RegExp et non la forme litt�rale :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var rgx = new RegExp("\\[b\\](.+)\\[\\/b\\]", "ig");
    Pourquoi un espace dans la balise ouvrante?

  4. #4
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Ceci fonctionne:
    Code : 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
    19
    20
    21
    22
    23
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Untitled Page</title>
    </head>
    <body>
      <textarea onblur="tolabel(this);">gras</textarea>
      <br />
      <label id="monlabel" name="monlabel">r�sultat</label>
      <script language="javascript">
      function tolabel(pControl) {
        document.getElementById("monlabel").innerHTML = txtBBCode2HTML(pControl.value);
      }
      function txtBBCode2HTML(texte) {
        var regex = new RegExp("\\[b\\](.+)\\[\\/b\\]", "ig");
        //var regex = /\[b\](.+)\[\/b\]/ig;
        texte = texte.replace(regex, "<strong>$1</strong>");
        alert(texte);
        return texte;
      }
      </script>
    </body>
    </html>
    onfocusout n'existe pas.

Discussions similaires

  1. Une date butoire dans une expression r�guli�re
    Par zooffy dans le forum ASP.NET
    R�ponses: 4
    Dernier message: 14/02/2008, 10h11
  2. R�ponses: 5
    Dernier message: 31/08/2006, 13h34
  3. Parenth�ses dans une expression r�guli�re
    Par papyreno dans le forum Collection et Stream
    R�ponses: 3
    Dernier message: 10/05/2006, 16h28
  4. [EXP] Evaluation dans une expression r�guli�re
    Par SergentHeinz dans le forum Langage
    R�ponses: 7
    Dernier message: 10/11/2005, 18h17
  5. R�ponses: 6
    Dernier message: 17/08/2005, 12h38

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