Salut,
J'aimerais faire un parseur BBCode => HTML, pour cela, j'ai trouvé la méthode replace qui me permet de tranformer une chaine :
Ceci me permet de convertir la balise [\b][\/b] en balise <strong></strong>, mais il y a un problème lorsque je convertit une chaine contenant plusieurs fois les balises :
Avec un chaine de départ comme :
il me retourne :
au lieu de
comme ce qui se passe avec cette regex en php :
* j'ai rajouté un \ devant les balises BBCode pour ne pas qu'elles soient prisent en compte par le forum
Merci
Modifié par Rapha (29 Jan 2008 - 18:53)
J'aimerais faire un parseur BBCode => HTML, pour cela, j'ai trouvé la méthode replace qui me permet de tranformer une chaine :
text.replace(/\[b\](.+)\[\/b\]/gi, '<strong>$1</strong>');
Ceci me permet de convertir la balise [\b][\/b] en balise <strong></strong>, mais il y a un problème lorsque je convertit une chaine contenant plusieurs fois les balises :
Avec un chaine de départ comme :
[\b]Texte en gras[\/b] Texte normal [\b]deuxième texte en gras[\/b]
il me retourne :
<strong>Texte en gras[\/b] Texte normal [\b]deuxième texte en gras</strong>
au lieu de
<strong>Texte en gras</strong> Texte normal <strong>deuxième texte en gras</strong>
comme ce qui se passe avec cette regex en php :
$text = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $text);
* j'ai rajouté un \ devant les balises BBCode pour ne pas qu'elles soient prisent en compte par le forum
Merci
Modifié par Rapha (29 Jan 2008 - 18:53)