Le meilleur moyen, à mon avis, est d'utiliser la fonctionnalité d'échappement HTML intégrée au navigateur pour gérer la plupart des cas. Pour ce faire, il suffit de créer un élément dans l'arbre DOM et de définir l'attribut innerText
de l'élément à votre chaîne. Ensuite, récupérez le innerHTML
de l'élément. Le navigateur renvoie une chaîne de caractères codée en HTML.
function HtmlEncode(s)
{
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
}
Test de fonctionnement :
alert(HtmlEncode('&;\'><"'));
Output:
&;'><"
Cette méthode d'échappement du HTML est également utilisée par l'application Bibliothèque Prototype JS mais différemment de l'échantillon simpliste que j'ai donné.
Remarque : vous devrez toujours échapper vous-même les guillemets (doubles et simples). Vous pouvez utiliser l'une des méthodes décrites par d'autres ici.
0 votes
Voir aussi : stackoverflow.com/questions/1354064
0 votes
Vous pouvez utiliser cette bibliothèque : npmjs.com/package/utf8
0 votes
Voir JavaScript htmlentities phpjs.org/functions/htmlentities:425