webForumDet fria alternativet

motsvarande htmlentities

4 svar · 223 visningar · startad av Nexus86

Nexus86Medlem sedan okt. 20022 683 inlägg
#1

Jag undrar om javascript har någon motsvarighet till php's htmlentities. D.v.s så att den gör om alla förbjudna tecken till deras koder. å = &aring;, < = &lt;, m.m.

dectgapMedlem sedan sep. 20021 542 inlägg
#2

Det finns ingen inbyggd sådan funktion, men det är ganska enkelt att skriva en egen om du använder dig av regexp.

T ex:

<script type="text/javascript">
function htmlentities(str){
  str = str.replace(/</g, "&lt;");
  str = str.replace(/>/g, "&gt;");

  return str;
}
text = "<b><i>Lite text</i></b>";
document.write(text);
document.write("<br />");
document.write(htmlentities(text));
</script>

Fyll bara på med fler replace().
/regexp/g, med ett g på slutet, gör att när en träff har hittats fortsätter sökningen. Utan parametern hade bara den första träffen ersatts.

Nexus86Medlem sedan okt. 20022 683 inlägg
#3

Men då är bara problemet, om jag vill ha så för alla tecken då? Har redan kod i php och det skulle ta åratal att skriva om till javascript. :l

dectgapMedlem sedan sep. 20021 542 inlägg
#4

Kör följande PHP-skript så får du en färdig funktion, som fungerar precis likadant som PHPs htmlentities():

<script type="text/javascript">
function htmlentities(str){
<?php
$arr = get_html_translation_table(HTML_ENTITIES);

foreach ($arr as $key => $value){
  echo "  str = str.replace(/$key/g, \"$value\");\n";
}
?>

  return str;
}
</script>
Nexus86Medlem sedan okt. 20022 683 inlägg
#5

Man tackar!

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb