Login
blog > developpement > [JavaScript] Nettoyer les balises HTML

[JavaScript] Nettoyer les balises HTML

Posté par : Seb - Le Mardi 18 Décembre 2007 à 00:36

J'ai passé quelques heures à chercher bêtement la solution sur le net, à me creuser la cervelle et pourtant, comme bien souvent la solution était si simple ...


De nombreuses solutions existent facilement sur Google pour supprimer un ou plusieurs types de balises, mais pour les supprimer toutes je n'ai pas trouvé. Pour des raisons de sécurité et de mise en page je veux effacer toutes les éventuelles images, div, mises en pages ... tout.

Pour nettoyer un code de TOUTES les balises qu'il contient si on se base en javascript il suffit de faire :



          hml= html.replace(/<[^>]*>/g,"");



Une ligne ! Explications :

Je dispose en entrée d'une variable html remplie de code, dont je souhaite n'extraire que le contenu. Dans mon cas il peux s'agir du contenu d'un node extraite d'un flux quelconque.


La fonction replace( arg1 , arg2 ) va rechercher la première occurence de "arg1" dans la variable html, et les remplacer par "arg2".

N'utilisez PAS les guillemets dans ce cas pour définir votre expression rationelle (c'est là où j'ai perdu de longues longues minutes), en effet un simple /arg1/ fera l'affaire, l'utilisation des guillemets dans ce cas ne fera que causer des soucis.


Pour effacer nos balises le plus simple est de chercher tout élément qui commence par un symbole " < " et se termine par un symbole " > ". Tout ce qui se trouve entre les deux sera supprimé. C'est le rôle de l'expression rationnelle  : /<[^>]*>/  .


De plus l'option /g indique que la recherche est globale. Elle est indispensable, car elle impose que chaque occurence soit traitée, autrement seule la première occurence est prise en compte. Assez gênant.

Note :
L'option " i " (ex : " /kookyoo/i "): précise que la recherche est insensible à la casse. Autrement il faudra conformément aux classiques expressions rationnelles respecter la casse.


Voilà, désolé pour cette note purement technique, pour ceux que ça intéresse vous pouvez tester vos script javascript directement sur cette page, ça devrait vous éviter bien des manipulations puisque c'est parfait comme environnement de test :)

Article suivant :
[Outil] Game Maker






Réalisation

Code & Design : Sébastien Cardona

Page générée en : 0.377766s