Arnaud's Blog Arnaud's Blog
Recherche
Remplacer les caractères spéciaux par leur code HTML en JavaScript

Remplacer les caractères spéciaux par leur code HTML en JavaScript

Bonjour bonjour,

J’ai cherché ce matin une méthode équivalente à la function PhP htmlSpecialChars() en JavaScript et je n’ai rien trouvé de convaincant sur le web. j’ai donc créé rapidement une méthode permettant d’obtenir le même résultat et que je vais vous partager ici :

function escapeHtml(unsafe) {
  return unsafe
     .replace(/&/g, "&")
     .replace(/</g, "&lt;")
     .replace(/>/g, "&gt;")
     .replace(/¢/g,"&cent;")
     .replace(/£/g,"&pound;")
     .replace(/€/g,"&euro;")
     .replace(/¥/g,"&yen;")
     .replace(/°/g,"&deg;")
     .replace(/¼/g,"&frac14;")
     .replace(/Œ/g,"&OElig;")
     .replace(/½/g,"&frac12;")
     .replace(/œ/g,"&oelig;")
     .replace(/¾/g,"&frac34;")
     .replace(/Ÿ/g,"&Yuml;")
     .replace(/¡/g,"&iexcl;")
     .replace(/«/g,"&laquo;")
     .replace(/»/g,"&raquo;")
     .replace(/¿/g,"&iquest;")
     .replace(/À/g,"&Agrave;")
     .replace(/Á/g,"&Aacute;")
     .replace(/Â/g,"&Acirc;")
     .replace(/Ã/g,"&Atilde;")
     .replace(/Ä/g,"&Auml;")
     .replace(/Å/g,"&Aring;")
     .replace(/Æ/g,"&AElig;")
     .replace(/Ç/g,"&Ccedil;")
     .replace(/È/g,"&Egrave;")
     .replace(/É/g,"&Eacute;")
     .replace(/Ê/g,"&Ecirc;")
     .replace(/Ë/g,"&Euml;")
     .replace(/Ì/g,"&Igrave;")
     .replace(/Í/g,"&Iacute;")
     .replace(/Î/g,"&Icirc;")
     .replace(/Ï/g,"&Iuml;")
     .replace(/Ð/g,"&ETH;")
     .replace(/Ñ/g,"&Ntilde;")
     .replace(/Ò/g,"&Ograve;")
     .replace(/Ó/g,"&Oacute;")
     .replace(/Ô/g,"&Ocirc;")
     .replace(/Õ/g,"&Otilde;")
     .replace(/Ö/g,"&Ouml;")
     .replace(/Ø/g,"&Oslash;")
     .replace(/Ù/g,"&Ugrave;")
     .replace(/Ú/g,"&Uacute;")
     .replace(/Û/g,"&Ucirc;")
     .replace(/Ü/g,"&Uuml;")
     .replace(/Ý/g,"&Yacute;")
     .replace(/Þ/g,"&THORN;")
     .replace(/ß/g,"&szlig;")
     .replace(/à/g,"&agrave;")
     .replace(/á/g,"&aacute;")
     .replace(/â/g,"&acirc;")
     .replace(/ã/g,"&atilde;")
     .replace(/ä/g,"&auml;")
     .replace(/å/g,"&aring;")
     .replace(/æ/g,"&aelig;")
     .replace(/ç/g,"&ccedil;")
     .replace(/è/g,"&egrave;")
     .replace(/é/g,"&eacute;")
     .replace(/ê/g,"&ecirc;")
     .replace(/ë/g,"&euml;")
     .replace(/ì/g,"&igrave;")
     .replace(/í/g,"&iacute;")
     .replace(/î/g,"&icirc;")
     .replace(/ï/g,"&iuml;")
     .replace(/ð/g,"&eth;")
     .replace(/ñ/g,"&ntilde;")
     .replace(/ò/g,"&ograve;")
     .replace(/ó/g,"&oacute;")
     .replace(/ô/g,"&ocirc;")
     .replace(/õ/g,"&otilde;")
     .replace(/ö/g,"&ouml;")
     .replace(/ø/g,"&oslash;")
     .replace(/ù/g,"&ugrave;")
     .replace(/ú/g,"&uacute;")
     .replace(/û/g,"&ucirc;")
     .replace(/ü/g,"&uuml;")
     .replace(/ý/g,"&yacute;")
     .replace(/þ/g,"&thorn;")
     .replace(/"/g, "&quot;")
     .replace(/'/g, "&#039;");
}

Et voilà, ça évitera peut – être des recherches à quelqu’un…

arrow4 commentaires

  1. mesca
    74 moiss, 1 sem plus tôt

    j’en ai eu besoin, mais dans l’autre sens :

    .replace(« & », « & »)
    .replace(« < », «  »)
    .replace(« ¢ », « ¢ »)
    .replace(« £ », « £ »)
    .replace(« € », « € »)
    .replace(« ¥ », « ¥ »)
    .replace(« ° », « ° »)
    .replace(« &frac14; », « ¼ »)
    .replace(« Œ », « Œ »)
    .replace(« &frac12; », « ½ »)
    .replace(« œ », « œ »)
    .replace(« &frac34; », « ¾ »)
    .replace(« Ÿ », « Ÿ »)
    .replace(« ¡ », « ¡ »)
    .replace(« « », « « »)
    .replace(« » », « » »)
    .replace(« ¿ », « ¿ »)
    .replace(« À », « À »)
    .replace(« Á », « Á »)
    .replace(« Â », « Â »)
    .replace(« Ã », « Ã »)
    .replace(« Ä », « Ä »)
    .replace(« Å », « Å »)
    .replace(« Æ », « Æ »)
    .replace(« Ç », « Ç »)
    .replace(« È », « È »)
    .replace(« É », « É »)
    .replace(« Ê », « Ê »)
    .replace(« Ë », « Ë »)
    .replace(« Ì », « Ì »)
    .replace(« Í », « Í »)
    .replace(« Î », « Î »)
    .replace(« Ï », « Ï »)
    .replace(« Ð », « Ð »)
    .replace(« Ñ », « Ñ »)
    .replace(« Ò », « Ò »)
    .replace(« Ó », « Ó »)
    .replace(« Ô », « Ô »)
    .replace(« Õ », « Õ »)
    .replace(« Ö », « Ö »)
    .replace(« Ø », « Ø »)
    .replace(« Ù », « Ù »)
    .replace(« Ú », « Ú »)
    .replace(« Û », « Û »)
    .replace(« Ü », « Ü »)
    .replace(« Ý », « Ý »)
    .replace(« Þ », « Þ »)
    .replace(« ß », « ß »)
    .replace(« à », « à »)
    .replace(« á », « á »)
    .replace(« â », « â »)
    .replace(« ã », « ã »)
    .replace(« ä », « ä »)
    .replace(« å », « å »)
    .replace(« æ », « æ »)
    .replace(« ç », « ç »)
    .replace(« è », « è »)
    .replace(« é », « é »)
    .replace(« ê », « ê »)
    .replace(« ë », « ë »)
    .replace(« ì », « ì »)
    .replace(« í », « í »)
    .replace(« î », « î »)
    .replace(« ï », « ï »)
    .replace(« ð », « ð »)
    .replace(« ñ », « ñ »)
    .replace(« ò », « ò »)
    .replace(« ó », « ó »)
    .replace(« ô », « ô »)
    .replace(« õ », « õ »)
    .replace(« ö », « ö »)
    .replace(« ø », « ø »)
    .replace(« ù », « ù »)
    .replace(« ú », « ú »)
    .replace(« û », « û »)
    .replace(« ü », « ü »)
    .replace(« ý », « ý »)
    .replace(« þ », « þ »)
    .replace(« " », «  »")
    .replace(« ' », « ‘ »)

  2. 73 moiss, 3 sems plus tôt

    Effectivement, dans l’autre sens ça donnerait :

    function unEscapeHtml(unsafe) {
      return unsafe
         .replace(/&lt;/g, "<")
         .replace(/&gt;/g, ">")
         .replace(/&cent;/g, "¢")
         .replace(/&pound;/g, "£")
         .replace(/&euro;/g, "€")
         .replace(/&yen;/g, "¥")
         .replace(/&deg;/g, "°")
         .replace(/&frac14;/g, "¼")
         .replace(/&OElig;/g, "Œ")
         .replace(/&frac12;/g, "½")
         .replace(/&oelig;/g, "œ")
         .replace(/&frac34;/g, "¾")
         .replace(/&Yuml;/g, "Ÿ")
         .replace(/&iexcl;/g, "¡")
         .replace(/&laquo;/g, "«")
         .replace(/&raquo;/g, "»")
         .replace(/&iquest;/g, "¿")
         .replace(/&Agrave;/g, "À")
         .replace(/&Aacute;/g, "Á")
         .replace(/&Acirc;/g, "Â")
         .replace(/&Atilde;/g, "Ã")
         .replace(/&Auml;/g, "Ä")
         .replace(/&Aring;/g, "Å")
         .replace(/&AElig;/g, "Æ")
         .replace(/&Ccedil;/g, "Ç")
         .replace(/&Egrave;/g, "È")
         .replace(/&Eacute;/g, "É")
         .replace(/&Ecirc;/g, "Ê")
         .replace(/&Euml;/g, "Ë")
         .replace(/&Igrave;/g, "Ì")
         .replace(/&Iacute;/g, "Í")
         .replace(/&Icirc;/g, "Î")
         .replace(/&Iuml;/g, "Ï")
         .replace(/&ETH;/g, "Ð")
         .replace(/&Ntilde;/g, "Ñ")
         .replace(/&Ograve;/g, "Ò")
         .replace(/&Oacute;/g, "Ó")
         .replace(/&Ocirc;/g, "Ô")
         .replace(/&Otilde;/g, "Õ")
         .replace(/&Ouml;/g, "Ö")
         .replace(/&Oslash;/g, "Ø")
         .replace(/&Ugrave;/g, "Ù")
         .replace(/&Uacute;/g, "Ú")
         .replace(/&Ucirc;/g, "Û")
         .replace(/&Uuml;/g, "Ü")
         .replace(/&Yacute;/g, "Ý")
         .replace(/&THORN;/g, "Þ")
         .replace(/&szlig;/g, "ß")
         .replace(/&agrave;/g, "à")
         .replace(/&aacute;/g, "á")
         .replace(/&acirc;/g, "â")
         .replace(/&atilde;/g, "ã")
         .replace(/&auml;/g, "ä")
         .replace(/&aring;/g, "å")
         .replace(/&aelig;/g, "æ")
         .replace(/&ccedil;/g, "ç")
         .replace(/&egrave;/g, "è")
         .replace(/&eacute;/g, "é")
         .replace(/&ecirc;/g, "ê")
         .replace(/&euml;/g, "ë")
         .replace(/&igrave;/g, "ì")
         .replace(/&iacute;/g, "í")
         .replace(/&icirc;/g, "î")
         .replace(/&iuml;/g, "ï")
         .replace(/&eth;/g, "ð")
         .replace(/&ntilde;/g, "ñ")
         .replace(/&ograve;/g, "ò")
         .replace(/&oacute;/g, "ó")
         .replace(/&ocirc;/g, "ô")
         .replace(/&otilde;/g, "õ")
         .replace(/&ouml;/g, "ö")
         .replace(/&oslash;/g, "ø")
         .replace(/&ugrave;/g, "ù")
         .replace(/&uacute;/g, "ú")
         .replace(/&ucirc;/g, "û")
         .replace(/&uuml;/g, "ü")
         .replace(/&yacute;/g, "ý")
         .replace(/&thorn;/g, "þ")
         .replace(/&quot;/g, "\"")
         .replace(/'/g, "'")
         .replace(/&amp;/g, "&");
    }
    
  3. 68 moiss, 1 sem plus tôt

    Bonjour,

    Deux fonctions qui pourront être utiles. Merci pour ce geste collaboratif.

    Pierre

  4. ludo
    59 moiss, 2 sems plus tôt

    pouvez-vous me dire où l’on doit placer ce script svp

    Merci

Laisser un commentaire