Maison >interface Web >js tutoriel >Comment obtenir l'équivalent des caractères htmlspecialchars de PHP en JavaScript ?

Comment obtenir l'équivalent des caractères htmlspecialchars de PHP en JavaScript ?

DDD
DDDoriginal
2024-12-03 02:06:13234parcourir

How to Achieve the Equivalent of PHP's htmlspecialchars in JavaScript?

JavaScript équivalent aux htmlspecialchars de PHP

En JavaScript, il n'existe pas de fonction intégrée directement analogue aux htmlspecialchars de PHP pour convertir les caractères spéciaux HTML en entités de caractères. Cependant, il existe des solutions personnalisées qui peuvent obtenir un résultat similaire.

Implémentation personnalisée

Une approche consiste à définir une fonction personnalisée qui traduit manuellement chaque caractère spécial. Par exemple :

function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "<")
      .replace(/>/g, ">")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&apos;");
}

Cette fonction prend une chaîne en entrée et remplace toutes les occurrences des caractères suivants par leurs entités de caractères correspondantes :

  • & - &
  • < - <
    • >
  • " - "
  • ' - '
  • Amélioré Performances

    Pour de meilleures performances, notamment avec des textes volumineux, vous pouvez utiliser une version légèrement optimisée :

    function escapeHtml(text) {
      var map = {
        '&': '&amp;',
        '<': '<',
        '>': '>',
        '"': '&quot;',
        "'": '&apos;'
      };
      
      return text.replace(/[&<>"']/g, function(m) { return map[m]; });
    }

    Cette version utilise une table de recherche pour stocker les mappages d'entités de caractères, qui élimine le besoin de plusieurs opérations de remplacement.

    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