2011-06-29 10 views
1

ウェブサイトでは、ユーザーが入力した文字列を取得します。JSの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

ネイティブメソッドエスケープ()は十分ですか?同じことを達成できるネイティブメソッドがありますか? –

+1

よくエスケープするのはURLエンコーディングです。それは<3Cbのようなものに変換されます。あなたがページに書き込むのであれば(これはあなたがやっていると思います) - あなたは "%3Cb"と表示されます。上記の例は、<文字として正しくレンダリングされる<に変換されます。 –

+0

.replace/jqを使用したいくつかの選択肢があります。 http://stackoverflow.com/questions/1787322/htmlspecialchars-equivalent-in-javascript –

関連する問題