Maison >interface Web >js tutoriel >Comment puis-je décoder des entités HTML à l'aide de JavaScript ou de jQuery ?

Comment puis-je décoder des entités HTML à l'aide de JavaScript ou de jQuery ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 15:25:10619parcourir

How Can I Decode HTML Entities Using JavaScript or jQuery?

Décoder les entités HTML avec JavaScript/jQuery

En développement web, il est souvent nécessaire de décoder les entités HTML pour afficher correctement les caractères spéciaux. Cette question explore comment y parvenir en utilisant JavaScript ou jQuery.

Solution 1 : Utilisation de jQuery

Bien que le code jQuery fourni puisse décoder les entités HTML, il présente des inconvénients potentiels liés à la performance et à la sécurité. Une fonction plus sûre et plus optimisée est recommandée :

var decodeEntities = (function() {
  // Internal element for HTML parsing
  var element = document.createElement('div');

  function decodeHTMLEntities(str) {
    if (str && typeof str === 'string') {
      // Sanitize HTML tags
      str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
      str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');

      // Decode entities
      element.innerHTML = str;
      str = element.textContent;
      element.textContent = '';
    }

    return str;
  }

  return decodeHTMLEntities;
})();

Utilisation :

var decodedString = decodeEntities("&amp;amp;");

Solution 2 : Utilisation d'un plugin jQuery

La fonction decodeEntities peut être facilement convertie en jQuery plugin :

jQuery.decodeEntities = decodeHTMLEntities;

Utilisation :

$(".selector").text(jQuery.decodeEntities("&amp;amp;"));

Exemple :

Considérez la chaîne d'entrée `var var

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn