私はChrome拡張機能を書いていますが、多く次のジョブの: 文字列をサニタイズするかもしれない、およびをそれぞれ<
、>
および&
に変換することにより、HTML タグを含めます。<
>
&
(言い換えれば、PHP と同じですhtmlspecialchars(str, ENT_NOQUOTES)
。二重引用符文字を変換する必要は実際にはないと思います。)
これは私がこれまでに見つけた中で最も速い関数です:
function safe_tags(str) {
return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ;
}
しかし、数千の文字列を一度に実行する必要がある場合、依然として大きな遅延が発生します。
これを改善できる人はいますか? 違いがあるかどうかはわかりませんが、これは主に 10 文字から 150 文字までの文字列に適用されます。
(私が考えたアイデアの 1 つは、大なり記号をエンコードしないことです。これで実際に何か危険があるでしょうか?)
ベストアンサー1
これを行う方法の 1 つを次に示します。
var escape = document.createElement('textarea');
function escapeHTML(html) {
escape.textContent = html;
return escape.innerHTML;
}
function unescapeHTML(html) {
escape.innerHTML = html;
return escape.textContent;
}