webForumDet fria alternativet
Logga in / Bli medlem

motsvarande htmlentities

JavaScript

4 svar · 223 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Trådstart#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.

Medlem sedan sep. 20021 655 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.

Medlem sedan okt. 20023 030 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

Medlem sedan sep. 20021 655 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>
Medlem sedan okt. 20023 030 inlägg
#5

Man tackar!

271 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
143 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
143 ms — ändringar (db)