Partage
  • Partager sur Facebook
  • Partager sur Twitter

regex, les amélioré !!!

    4 avril 2006 à 17:35:30

    Bonjour à tous,

    j'ai fini hier mon système de regex , tout marche à la perfection.

    mais alors pourquoi tu nous créer un topic o_O ?


    Seuleuement , le petit problème est qu'il faut tout taper à la main. Et la plupart des forums sont formés ( comme pour la sdz par exemple ) de bouton ou quand on appuie dessus se trouve par exemple pour b = [b][/b]

    j'ai trouver sur l'éditeur javascript un code qui permet de faire ça avec des input. Seul problème, lorsque je clique par exemple sur le bouton url étant donné que c'est url= au lieu de me donné : [url=][/url] il me donne : [url=][/url=] et honnetement , c'ets vraiment pas pratique , je sais que c'ets un rien , mais quand on veut la perfection... Alors bon voici le code javascript , et les formualires:

    javascript:
    <script language="Javascript">
    var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
    var regexp = new RegExp("[\r]","gi");

    function storeCaret(selec)
    {
            if (isMozilla)
            {
            // Si on est sur Mozilla

                    oField = document.forms['news'].elements['contenu'];

                    objectValue = oField.value;

                    deb = oField.selectionStart;
                    fin = oField.selectionEnd;

                    objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
                    objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
                    objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

            //      alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
                           
                    oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
                    oField.selectionStart = strlen(objectValueDeb);
                    oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
                    oField.focus();
                    oField.setSelectionRange(
                            objectValueDeb.length + selec.length + 2,
                            objectValueDeb.length + selec.length + 2);
            }
            else
            {
            // Si on est sur IE
                   
                    oField = document.forms['news'].elements['newst'];
                    var str = document.selection.createRange().text;

                    if (str.length>0)
                    {
                    // Si on a selectionné du texte
                            var sel = document.selection.createRange();
                            sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
                            sel.collapse();
                            sel.select();
                    }
                    else
                    {
                            oField.focus(oField.caretPos);
                    //      alert(oField.caretPos+"\n"+oField.value.length+"\n")
                            oField.focus(oField.value.length);
                            oField.caretPos = document.selection.createRange().duplicate();
                           
                            var bidon = "%~%";
                            var orig = oField.value;
                            oField.caretPos.text = bidon;
                            var i = oField.value.search(bidon);
                            oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
                            var r = 0;
                            for(n = 0; n < i; n++)
                            {if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
                            pos = i + 2 + selec.length - r;
                            //placer(document.forms['news'].elements['newst'], pos);
                            var r = oField.createTextRange();
                            r.moveStart('character', pos);
                            r.collapse();
                            r.select();

                    }
            }
    }

    </script>

        </head>



    et maintenant le code des forumaire:


    <form action="liste_news.php" method="post" name="news">

    <p align="center"><input type="button" value="G" style="width:50px;font-weight:bold" onclick="storeCaret('g')">
    <input type="button" value="i" style="width:50px;font-style:italic" onclick="storeCaret('i')">
    <input type="button" value="u" style="width:50px;text-decoration:underline" onclick="storeCaret('u')">
    <input type="button" value="couleur"style="width:50px" onclick="storeCaret('color=')">
    <input type="button" value="code"style="width:50px" onclick="storeCaret('code=')">
    <input type="button" value="url"style="width:50px" onclick="storeCaret('url=')">
    <input type="button" value="img"style="width:50px" onclick="storeCaret('img')">

    <input type="button" value="taille"style="width:50px" onclick="storeCaret('size=')">
    <input type="button" value="barré"style="width:50px" onclick="storeCaret('b')">
    <input type="button" value="align"style="width:50px" onclick="storeCaret('align')=">
    <input type="button" value="blink"style="width:50px" onclick="storeCaret('blink')">
    <input type="button" value="mail"style="width:50px" onclick="storeCaret('mail=')"><br></p>
    <p align="center">
        <textarea name="contenu" cols="50" rows="10" id="newst" wrap="virtual" >
       
        </textarea>



    sinon tout marche bien quand je clique sur B sa me met bien [b][/b] et tout , mais le problème est pour ceux qui ont des = ... comme align , size , url ,code , mail , color ,......................................


    alors si vous pouviez m'aider svp ....

    merci d'avance ,Kleos chaos
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2006 à 17:39:13

      ba oui , ça parle des regex donc...
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2006 à 18:36:24

        Bhein non, c'est du Javascript ...
        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2006 à 18:38:29

          Citation : Kleos chaos

          ba oui , ça parle des regex donc...


          Et alors ?
          Dès que tu lis regex, tu associes PHP ? :-°
          Les regex viennent de PERL et on en trouve dans tous les langages ;)
          • Partager sur Facebook
          • Partager sur Twitter
            4 avril 2006 à 19:30:35

            Bah perso, je fais un lien comme ça :
            <a href="#" onClick="insertion('[url=]', '[/url]');;"><img src="./images/lien.jpg" alt="Lien" alt="" /></a>


            Et par rapport à ta signature, je viens de Jeuxvideo.com, et j'ai un site en PHP, je sais qu'on peux pas faire un jeux en HTML, je fais mon site avec notepad++ et si je te parle, c'est que j'ai allumé mon PC avec le bouton power de l'unité centrale, alors change ta signature, fissa :colere: ... :p;):lol:

            PS : C'est pas moi qui te l'ai passé ce code de REGEX ? ^^
            Voir ici
            • Partager sur Facebook
            • Partager sur Twitter
              4 avril 2006 à 19:49:39

              Citation : JaKhris

              Bah perso, je fais un lien comme ça :

              <a href="#" onClick="insertion('[url=]', '[/url]');;"><img src="./images/lien.jpg" alt="Lien" alt="" /></a>



              Et par rapport à ta signature, je viens de Jeuxvideo.com, et j'ai un site en PHP, je sais qu'on peux pas faire un jeux en HTML, je fais mon site avec notepad++ et si je te parle, c'est que j'ai allumé mon PC avec le bouton power de l'unité centrale, alors change ta signature, fissa :colere: ... :p;):lol:

              PS : C'est pas moi qui te l'ai passé ce code de REGEX ? ^^
              Voir ici



              M'étonnerait vu que ton code est en PHP,le sien en Javascript ...

              Perso, je trouve bien mieu de faire 10 lignes en PHP que 150 en Javascript pour le même résultat :-°
              • Partager sur Facebook
              • Partager sur Twitter
                4 avril 2006 à 19:51:02

                Voulez je JS qui va avec ? ^^
                <script type="text/javascript">
                <!--
                function insertion(repdeb, repfin) {
                  var input = document.forms['NOM_DU_FORM'].elements['NOM_DU_TEXTAREA_OU_INPUT'];
                  input.focus();
                  /* pour l'Explorer Internet */
                  if(typeof document.selection != 'undefined') {
                    /* Insertion du code de formatage */
                    var range = document.selection.createRange();
                    var insText = range.text;
                    range.text = repdeb + insText + repfin;
                    /* Ajustement de la position du curseur */
                    range = document.selection.createRange();
                    if (insText.length == 0) {
                      range.move('character', -repfin.length);
                    } else {
                      range.moveStart('character', repdeb.length + insText.length + repfin.length);
                    }
                    range.select();
                  }
                  /* pour navigateurs plus récents basés sur Gecko*/
                  else if(typeof input.selectionStart != 'undefined')
                  {
                    /* Insertion du code de formatage */
                    var start = input.selectionStart;
                    var end = input.selectionEnd;
                    var insText = input.value.substring(start, end);
                    input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
                    /* Ajustement de la position du curseur */
                    var pos;
                    if (insText.length == 0) {
                      pos = start + repdeb.length;
                    } else {
                      pos = start + repdeb.length + insText.length + repfin.length;
                    }
                    input.selectionStart = pos;
                    input.selectionEnd = pos;
                  }
                  /* pour les autres navigateurs */
                  else
                  {
                    var pos;
                    var re = new RegExp('^[0-9]{0,3}$');
                    while(!re.test(pos)) {
                      pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
                    }
                    if(pos > input.value.length) {
                      pos = input.value.length;
                    }
                    /* Insertion du code de formatage */
                    var insText = prompt("Veuillez entrer le texte à formater:");
                    input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
                  }
                }
                //-->
                </script>


                N'oublie de pa de changer la ligne :
                document.forms['NOM_DU_FORM'].elements['NOM_DU_TEXTAREA_OU_INPUT'];
                • Partager sur Facebook
                • Partager sur Twitter
                  4 avril 2006 à 19:55:14

                  oki merci pour vos réponse , dit moi jakhris , je doit remplacer mon script de java par le tien et remplacer mes input par tes liens ??? , parce que c'ets bizarre , dans ton code java , je voit pas ou tu indique que ça va le mettre automatiquement dans le textarea .... m'enfin bon :D

                  edit: dsl j'avais pas vu la ligne merci :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 avril 2006 à 21:23:23

                    Citation : Kleos chaos

                    oki merci pour vos réponse , dit moi jakhris , je doit remplacer mon script de java par le tien et remplacer mes input par tes liens ??? , parce que c'ets bizarre , dans ton code java , je voit pas ou tu indique que ça va le mettre automatiquement dans le textarea .... m'enfin bon :D

                    edit: dsl j'avais pas vu la ligne merci :p



                    Le Java et le Javascript sont 2 languages bien différends !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 avril 2006 à 22:00:12

                      JavaScript => Mélange HTML et PHP
                      Java => Truk genre Flash ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 avril 2006 à 22:05:25

                        Citation : JaKhris

                        JavaScript => Mélange HTML et PHP
                        Java => Truk genre Flash ^^



                        Le Javascript c'est pas du mélange HTML et PHP !
                        Tu peut les combiner mais ce n'est pas un mélange des deux .

                        Cf Wikipedia pour Java .

                        ++
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 avril 2006 à 22:09:01

                          Ce que je voulait dire c'est qu'il y a des fonctions que l'on retrouve dans PHP, mais avec JS, on les mets sur une page HTML ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 avril 2006 à 22:16:03

                            Citation : JaKhris

                            JavaScript => Mélange HTML et PHP
                            Java => Truk genre Flash ^^


                            Tout faux... Javascript c'est un langage de scripts côté client.
                            Aucun rapport avec PHP (côté serveur). Aucun rapport avec le HTML non plus, le JS peut très bien être utilisé avec du SVG par exemple, sans une ligne de HTML ou d'XHTML.

                            Java c'est un langage de programmation qui n'a pas vraiment de comparaison avec Flash. Tu penses surement aux applets Java, mais ça n'a pas les même buts ni les mêmes possibilités que Flash ; et surtout Java est bien plus vaste que ça, rien que pour le web il peut aussi être utilisé côté serveur (JSP). Et bien sûr, la création de logiciels.
                            Réduire le Java aux applets c'est extrèmement réducteur, et même dans ce cas ça n'a pas grand chose à voir avec une animation Flash, dans la conception et même dans l'utilisation.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 avril 2006 à 22:20:13

                              Tu me parle une langue qui m'est complètement étrangère o_O
                              Mais je comprends ^^
                              Ce que je voulais dire c'est qu'il y a des rapprochement faisable en PHP et JS.
                              Et Java et Flash...bah c'est un truk interactif quoi ^^
                              (j'me comprends)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 avril 2006 à 19:35:10

                                Citation : JaKhris

                                Tu me parle une langue qui m'est complètement étrangère o_O
                                Mais je comprends ^^
                                Ce que je voulais dire c'est qu'il y a des rapprochement faisable en PHP et JS.
                                Et Java et Flash...bah c'est un truk interactif quoi ^^
                                (j'me comprends)



                                Le JS aussi peut être intéractif :-°
                                • Partager sur Facebook
                                • Partager sur Twitter

                                regex, les amélioré !!!

                                × 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