Partage
  • Partager sur Facebook
  • Partager sur Twitter

Balises <code>

Sujet résolu
    2 octobre 2009 à 17:34:38

    Bonjour à tous,

    Je suis en train de réaliser un système de BBCode et j'aimerai savoir comment, pour la pré-visualisation, ne pas exécuter le "code" entre les balises <-code-> et <-/code->

    Sur mon site, les balises <-code-> seront que pour le BBCode.

    Système attendu :
    <gras>Ici, tu peux mettre ton texte en gras</gras>
    <couleur nom="vert">Ici, ton texte s'écrira en vert</couleur>
    


    Mais le problème, c'est que les balises s'exécute ! J'ai donc le texte en vert et en gars !

    Si quelqu'un pouvait m'aider, ce serai vraiment gentil de sa part !

    Valentin
    • Partager sur Facebook
    • Partager sur Twitter
      2 octobre 2009 à 17:53:44

      Bah, tu récupères le contenu des <code></code> et tu fais un content.replace(/</g, '&lt;');
      • Partager sur Facebook
      • Partager sur Twitter
        2 octobre 2009 à 19:56:04

        Il y a une fonction PHP qui permet d'enlever les tags HTML et PHP d'une chaîne mais je ne sais pas si elle a un équivalent en javascript.

        Citation : fr.php.net


        (PHP 4, PHP 5)
        strip_tags — Supprime les balises HTML et PHP d'une chaîne

        strip_tags() tente de retourner la chaîne str après avoir supprimé toutes les balises PHP et HTML du code. Elle génère des alertes si les balises sont incomplètes ou erronées. Elle utilise le même moteur de recherche que fgetss().

        • Partager sur Facebook
        • Partager sur Twitter
          2 octobre 2009 à 20:13:28

          Il veut pas supprimer, il veut qu'elles ne soient pas interprété, un replace de < par &lt; suffit.
          • Partager sur Facebook
          • Partager sur Twitter
            3 octobre 2009 à 13:44:14

            Bonjour,

            Merci pour vos réponses. Mais je ne suis pas un as du javascript (enfin pas encore, peut-être un jour ?)

            Et donc je n'ai pas tout compris.

            Voici mon code
            var field = textareaId.value;
            
            field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<span class="gras">$1</span>');
            field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<span class="italique">$1</span>');
            field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<span class="souligne">$1</span>');
            field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<span class="barre">$1</span>');
            		
            field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
            		
            field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
            field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
            		
            field = field.replace(/&lt;email&gt;([\s\S]*?)&lt;\/email&gt;/g, '<a href="mailto:$1">$1</a>');
            field = field.replace(/&lt;email nom="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/email&gt;/g, '<a href="mailto:$1">$2</a>');
            		
            field = field.replace(/&lt;code&gt;([\s\S]*?)&lt;\/code&gt;/g, '<div class="code"><span class="code_titre">Code :</span><div class="code_contenu"><div id="code_texte">$1</div></div></div>');
            


            Que faut-il que je fasse ?

            Merci de votre aide.

            Valentin
            • Partager sur Facebook
            • Partager sur Twitter
              4 octobre 2009 à 15:06:17

              Bonjour,

              Personne ne sait ?

              Merci d'avance de votre aide.
              Valentin
              • Partager sur Facebook
              • Partager sur Twitter
                5 octobre 2009 à 15:14:32

                Bonjour,

                Désolé de faire un up mais j'aimerai réussir (avec votre aide bien sur !) à ne pas parser à l'intérieur de ces balises (j'ai continuer de chercher ce week-end mais je n'y arrive toujours pas ! Dur dur !)

                Quelqu'un pourrait-il m'aider ?

                Merci d'avance pour votre aide.

                Valentin
                • Partager sur Facebook
                • Partager sur Twitter
                  5 octobre 2009 à 16:39:13

                  var field = textareaId.value;
                  
                  var parsed = function(field) {
                  	field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<span class="gras">$1</span>');
                  	field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<span class="italique">$1</span>');
                  	field = field.replace(/<souligne>([\s\S]*?)<\/souligne>/g, '<span class="souligne">$1</span>');
                  	field = field.replace(/<barre>([\s\S]*?)<\/barre>/g, '<span class="barre">$1</span>');
                  			
                  	field = field.replace(/<image>([\s\S]*?)<\/image>/g, '<img src="$1" alt="Image" />');
                  			
                  	field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>');
                  	field = field.replace(/<lien url="([\s\S]*?)">([\s\S]*?)<\/lien>/g, '<a href="$1" title="$2">$2</a>');
                  			
                  	field = field.replace(/<email>([\s\S]*?)<\/email>/g, '<a href="mailto:$1">$1</a>');
                  	field = field.replace(/<email nom="([\s\S]*?)">([\s\S]*?)<\/email>/g, '<a href="mailto:$1">$2</a>');
                  	
                  	return field;
                  }
                  
                  var tmp = field.split('<code>');
                  field = parsed(tmp[0]);
                  if (tmp[1]) {
                  	for (var i = 1, t; i < tmp.length; i++) {
                  		field += '<div class="code"><span class="code_titre">Code :</span><div class="code_contenu"><div id="code_texte">';
                  		t = tmp[i].split('</code>');
                  		field += t[0].replace(/</g, '&lt;') + '</div></div></div>';
                  		t.shift();
                  		field += parsed(t.join(''));
                  	}
                  }
                  


                  ça devrait je pense marcher.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 octobre 2009 à 18:45:49

                    Bonjour,

                    Ce code est ce qu'il me fallait et en plus je l'ai compris !
                    Merci, merci, merci et encore merci !

                    Valentin
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Balises <code>

                    × 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