Maison  >  Article  >  interface Web  >  Comment puis-je échapper aux caractères spéciaux HTML dans JavaScript à l'aide de fonctions intégrées ou personnalisées ?

Comment puis-je échapper aux caractères spéciaux HTML dans JavaScript à l'aide de fonctions intégrées ou personnalisées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 04:31:02156parcourir

How Can I Escape HTML Special Characters in JavaScript Using Built-In or Custom Functions?

Échapper aux caractères spéciaux HTML avec les fonctions intégrées de JavaScript ?

Comme l'enquête le suggère, les htmlspecialchars de PHP fournissent un moyen pratique d'encoder les caractères spéciaux HTML lors de la traduction. Une fonction correspondante en JavaScript simplifierait considérablement la tâche.

Bien que les fonctions intégrées telles que escape() et encodeURI() ne gèrent pas l'échappement des caractères comme prévu, il existe des alternatives disponibles.

Personnalisée Implémentation

Une approche consiste à créer une fonction personnalisée qui remplace des caractères spécifiques :

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

Cette fonction parcourt le texte saisi et remplace les caractères spéciaux par leurs équivalents codés en HTML.

Version optimisée

Une version optimisée en termes de performances, adaptée à un traitement de texte étendu :

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

Cette implémentation utilise un objet JavaScript pour mapper les caractères spéciaux à leurs séquences d'échappement, en tirant parti des performances de remplacement rapide des expressions régulières.

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