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 ?
	
	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 :  
	
	[ b]gras[/b] [ i]italique[/i] [ u]souligné[/u]
 Ca me donne ça en sortie : 
	
	[< strong>]gras[</strong>b] [ i]italique[/i] [ u]souligné[/u]
  
alors que je voudrais ça : 
	
	< 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 
						
					
Partager