Nexus86 Medlem sedan okt. 2002 3 030 inlägg Trådstart 23 juni 2003 23:33 #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. å = å, < = <, m.m.
dectgap Medlem sedan sep. 2002 1 655 inlägg 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, "<");
str = str.replace(/>/g, ">");
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.
Nexus86 Medlem sedan okt. 2002 3 030 inlägg 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.
dectgap Medlem sedan sep. 2002 1 655 inlägg 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>