Comment supprimer les balises HTML en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2018-04-07 13:18:05
Thèmes : script - javascript
Question

J'ai une chaine de caractères qui contient des balises HTML, comment puis-je supprimer ces balises HTML en JavaScript ?

<div class="toto" id="toto"><span>texte à conserver</span></div>
Réponse

Tu peux utiliser String.prototype.replace() pour supprimer des éléments et donc des balises HTML, d'une chaine de caractères, selon un modèle du type REGEX.

Dans l'exemple ci-dessous on utilise l'expression régulière suivante :

/<[^>]*>/g

Cette expression régulière identifie tous les caractères entre < et >, < et > inclus, une ou plusieurs fois.

On utilise ensuite la fonction replace() pour remplacer ce qu'a identifié l'expression régulière par une chaine vide :

str.replace(/<[^>]*>/g, '');

Voici ainsi le code complet qui reprend votre exemple :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
var exemple = '<div class="toto" id="toto"><span>texte à conserver</span></div>';

function cleanHTML(str)
{
   if ((str===null) || (str===''))
   {
   return false;
   }
   else
   {
   str = str.toString();
   return str.replace(/<[^>]*>/g, '');
   }
}

document.write((cleanHTML(exemple)));
</script>
</body>
</html>