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…

4 réponses à to “Remplacer les caractères spéciaux par leur code HTML en JavaScript”

  • mesca:

    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(« ' », « ‘ »)

  • 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, "&");
    }
    
  • Bonjour,

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

    Pierre

  • ludo:

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

    Merci

Laisser un commentaire

Catégories
Nuage de Tags