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