Maison >interface Web >js tutoriel >Existe-t-il un équivalent JavaScript à `htmlspecialchars()` de PHP ?

Existe-t-il un équivalent JavaScript à `htmlspecialchars()` de PHP ?

DDD
DDDoriginal
2024-11-17 18:54:02244parcourir

Is There a JavaScript Equivalent to PHP's `htmlspecialchars()`?

JavaScript équivalent aux htmlspecialchars de PHP

Déterminer s'il existe une fonction JavaScript équivalente aux htmlspecialchars de PHP peut être un défi. Cependant, une approche alternative consiste à définir une fonction personnalisée à cet effet.

Fonction personnalisée pour l'échappement des caractères HTML

Bien que JavaScript ne fournisse pas de fonction intégrée spécifiquement pour l'échappement des caractères HTML, la fonction personnalisée suivante peut répondre à ce besoin :

function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "&amp;lt;")
      .replace(/>/g, "&amp;gt;")
      .replace(/&quot;/g, "&amp;quot;")
      .replace(/'/g, "&amp;#039;");
}

Cette fonction accepte une chaîne en entrée et remplace les caractères spéciaux suivants par leur Équivalents d'entités de caractères HTML :

  • & → &
  • < → <
  • → >
  • " → "
  • ' → '

Optimisation des performances

Pour des performances améliorées, en particulier avec des textes volumineux blocs, la version modifiée suivante de la fonction peut être utilisée :

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

Cette version crée une table de hachage (map) pour mapper les caractères spéciaux à leurs entités correspondantes, puis utilise la méthode replace() pour effectuer les remplacements .

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