Salut,
J'aimerais faire un parseur BBCode => HTML, pour cela, j'ai trouvé la méthode replace qui me permet de tranformer une chaine :
Code :
- 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 :
Code :
- [\b]Texte en gras[\/b] Texte normal [\b]deuxième texte en gras[\/b]
|
il me retourne :
Code :
- <strong>Texte en gras[\/b] Texte normal [\b]deuxième texte en gras</strong>
|
au lieu de
Code :
- <strong>Texte en gras</strong> Texte normal <strong>deuxième texte en gras</strong>
|
comme ce qui se passe avec cette regex en php :
Code :
- $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