Posez votre question Signaler

[Javascript] Regex BBCode to HTML [Résolu]

Dinheru 1019Messages postés 20 avril 2005Date d'inscription - Dernière réponse le 5 nov. 2008 à 17:05
Salut !
Alors voila j'aimerais faire une fonction qui traduit du 'BBCode' en HTML.
Pour le faire j'ai une fonction de la forme :
function BBcodeTranslate(texte)
	{
		table = ["div","table","tr","td","span"];
		for(i=0;i<length(table);i++)
		{
			texte = ;
			regex = '/\['+table[i]+'\w\]';
			texte=texte.replace(regex,"<"+table[i]+" "+texte+">");
		}
	}

Et j'aimerais pouvoir mettre dans ma variable texte l'éventuelle texte qu'il pourait y avoir dans mes balise.
Je m'explique :
- Si j'ai ça [div]coucou[/div] je veux <div>coucou</div> en sortie
- Si j'ai ça [div weight="200px]coucou[/coucou] j'aimerais avoir ça <div weight="200px>coucou</div>
Donc comment faire pour récupérer le weight="200px" dans ma varaible texte ? ( ou tout autre forme de style ! )
Merci d'avance.
Lire la suite 

[Javascript] Regex BBCode to HTML »

3 réponses
Réponse
+0
moins plus
Bonjour,

Je te propose une expression rationnelle plus complète, qui aura en plus l'avantage de vérifier que la balise ouvrante est bien fermée plus loin.
regex = '/\['+table[i]+'( .*)\](.*)\[\/'+table[i]\]/';
Explications : les parenthèses () permettent de mettre en mémoire le bloc en question, dans les variables RegExp.$1, RegExp.$2, etc. (dans l'ordre des parenthèses). Dans un replace, ces variables sont récupérables en mettant simplement $1, $2, ...
Je précise quand même que j'ai écrit cette expression rationnelle sans la tester, donc il y aura peut-être quelques ajustements à faire, mais le principe est là.

Donc, si tu as bien suivi, ton code devient :
function BBcodeTranslate(texte)
{
	table = ["div","table","tr","td","span"];
	for(i=0;i<length(table);i++)
	{
		regex = '/\['+table[i]+'( .*)\](.*)\[\/'+table[i]\]/';
		texte=texte.replace(regex, "<"+table[i]+"$1>$2</"+table[i]+">");
	}
}


Voilà !

Xavier
Ajouter un commentaire
Réponse
+0
moins plus
merci a toi ça marche avec quelque modif !
test - 5 nov. 2008 à 17:05
merci et c'est quoi ces "quelques modifs" .... ... .... ....
Ajouter un commentaire
Ce document intitulé « [Javascript] Regex BBCode to HTML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?