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