Bonsoir tout le monde,
j'aurais besoin de votre aide pour un script d'interpetation de balise bbcode en balise xhtml.
J'ai créé des fonctions qui permettent de mettre en gras un texte
par exemple, [ gras ] Ok [ /gras] devient Ok au visionnage.
un saut de ligne "\n" est remplacé par un "<br>" pour un saut de ligne. Et ceci me crée un problème !
Je vous explique : avec un bouton qui insère le texte suivant;
[ tableau ]
[ ligne ]
[ cellule ] Texte [ /cellule ]
[ /ligne ]
[ /tableau ]
le texte est inséré dans le textarea en respectant les sauts de ligne pour une meilleure organisation du texte pour le client mais je me trouve bloqué au niveau des sauts de ligne. En effet, le bbcode ci-dessous est interpreté de cette façon dans mon code :
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
 
//Tableau
t=deblaie(/(\[\/tableau\])/g,t)
t=remplace_tag(/\[tableau\](.+)\[\/tableau\]/g,'<table>$1</table>',t)
t=remblaie(t)
 
//Ligne
t=deblaie(/(\[\/ligne\])/g,t)
t=remplace_tag(/\[ligne\](.+)\[\/ligne\]/g,'<tr>$1</tr>',t)
t=remblaie(t)
 
//Cellule
t=deblaie(/(\[\/cellule\])/g,t)
t=remplace_tag(/\[cellule\](.+)\[\/cellule\]/g,'<td>$1</td>',t)
t=remblaie(t)
donc
[ tableau ] [ /tableau ] est remplacé par <table></table>
[ ligne ] [ /ligne ] par <tr></tr>
[ cellule ] [ /cellule ] par <td></td>
Vous me direz que tout va bien ! Mais ce n'est pas tout à fait ça !
car, un saut de ligne est remplacé par un <br>
le texte html devient
<table><br>
<tr><br>
<td>Texte</td><br>
</tr><br>
</table>
et ça déforme complétement le tableau !
Cependant si je fais ceci :
[ tableau ][ ligne ][ cellule ] Texte [ /cellule ][ /ligne ][ /tableau ]
Le texte interpreté en html est le suivant :
<table><tr><td>Texte</td></tr></table>

et donc, tout va bien si c'est en 1 seule ligne. Mais le client sera perturbé par un code en une seule ligne s'il ne connait pas bien le html et surtout s'il veut créer un grand tableau !

En conclusion, j'aurais besoin de votre aide pour faire une condition et de vérifier si nous nous trouvons entre [ tableau ] et [ /tableau ] et annuler les sauts de ligne ! Sinon, les sauts de ligne restent valides.

Ps : voici la fonction qui permet de convertir le saut de ligne en html :
function nl2br(t) {
texte=new String(t);
return texte.replace(/\n/g,'<br>');
}


Je remercie celle/celui qui m'aidera. Je cherche depuis 2 jours mais sans succès car je n'y connais absolument rien en javascript.

Merci encore et bonne soirée