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<>\&]/g, function(i) { return '&#'+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 ® & ©'); // "Test <sup>&reg;</sup> &amp; <sup>&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<>\&]/g, (i) => `<sup>&#${i.charCodeAt(0)};</sup>`);</code>
Cette fonction enferme l'entité HTML dans un balise avec un formatage spécifique.
Considérations supplémentaires :
Documentation :
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!