Maison  >  Article  >  interface Web  >  Comment encoder des entités HTML en JavaScript pour un rendu cohérent dans les systèmes de gestion de contenu ?

Comment encoder des entités HTML en JavaScript pour un rendu cohérent dans les systèmes de gestion de contenu ?

DDD
DDDoriginal
2024-10-28 04:31:30964parcourir

How to Encode HTML Entities in JavaScript for Consistent Rendering in Content Management Systems?

Encoder les entités HTML en JavaScript

Problème :

Un système de gestion de contenu permet aux utilisateurs de saisir du contenu contenant des caractères spéciaux comme ®, dont le rendu peut être incohérent selon les navigateurs. Le but est de convertir ces caractères en entités HTML correspondantes et de les enfermer dans un balise pour un style cohérent.

Solutions :

Utilisation d'une expression régulière

Les expressions régulières de JavaScript offrent une solution complète pour cela tâche :

<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&amp;]/g, function(i) {
   return '&amp;#'+i.charCodeAt(0)+';';
});</code>

Ce code utilise une expression régulière pour rechercher des caractères dans une plage Unicode (00A0-9999) ainsi que des symboles esperluette, inférieur à et supérieur à. Il les convertit ensuite en entités de caractères HTML en ajoutant "" et en ajoutant la valeur Unicode.

Exemple :

<code class="javascript">var result = encodeHTML('Test ® &amp; ©'); // "Test <sup>&amp;reg;</sup> &amp;amp; <sup>&amp;copy;</sup>"</code>

Fonction de remplacement personnalisable

Pour un contrôle plus granulaire, vous pouvez spécifier une fonction de remplacement personnalisée :

<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&amp;]/g, (i) => `<sup>&amp;#${i.charCodeAt(0)};</sup>`);</code>

Cette fonction enferme l'entité HTML dans un balise avec un formatage spécifique.

Considérations supplémentaires :

  • Assurez-vous du codage des caractères UTF8 et du stockage dans la base de données pour éviter les problèmes d'affichage.
  • La solution peut ne résout pas tous les écarts de rendu dus à la configuration des polices du système et à d'autres facteurs indépendants de votre volonté.

Documentation :

  • [String.charCodeAt()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)
  • [Entités de caractères HTML](http://www.chucke.com /entities.html)

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