[Javascript] Regex BBCode to HTML
Résolu
Dinheru
Messages postés
1019
Date d'inscription
Statut
Membre
Dernière intervention
-
test -
test -
Salut !
Alors voila j'aimerais faire une fonction qui traduit du 'BBCode' en HTML.
Pour le faire j'ai une fonction de la forme :
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.
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.
A voir également:
- Bbcode to html javascript
- Qwerty to azerty - Guide
- Editeur html - Télécharger - HTML
- Telecharger javascript - Télécharger - Langages
- Br html ✓ - Forum Webmastering
- Video to video - Télécharger - Conversion & Codecs
2 réponses
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.
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 :
Voilà !
Xavier
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