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.
motsvarande htmlentities
4 svar · 223 visningar · startad av Nexus86
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.
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
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>
Man tackar!