2011-06-29 15 views
1

在網站上,我檢索用戶輸入的字符串。Encoder.html中的編碼器

DataItem.getProperty('-----some name ----') 

問題是,有些用戶把<script></script>放在那裏。

我該如何轉義/ html編碼這個字符串很好?

回答

1

怎麼樣;

function HTMLEncode(buff) { 
    var e = document.createElement("div"); 
    e.appendChild(document.createTextNode(buff)); 
    return e.innerHTML; 
} 


In: AAA <script>BBB</script> CCC &lt;DDD&gt; 
Out: AAA &lt;script&gt;BBB&lt;/script&gt; CCC &lt;DDD&gt; 
+0

不會原生方法escape()是否足夠?有沒有可以實現相同的本地方法? –

+1

呃轉義是用於url編碼;它會轉換成類似%3Cb的東西 - 如果你將它寫入頁面(這是我假設你的做法) - 你會看到「%3Cb」。上面的例子將轉換爲<,這將作爲<字符正確呈現。 –

+0

以下是使用.replace/jq的一些替代方案; http://stackoverflow.com/questions/1787322/htmlspecialchars-equivalent-in-javascript –