JavaScript で特殊文字を HTML に変換するにはどうすればよいですか?
例:
&
(アンパサンド) は になります&
。"
"
が設定されていない場合は、(二重引用符) になりますENT_NOQUOTES
。'
(一重引用符) は、が設定されている'
場合にのみ になりますENT_QUOTES
。<
(より小さい) は になります<
。>
(より大きい) は になります>
。
ベストアンサー1
私の意見では、多くの場合、ブラウザに組み込まれた HTML エスケープ機能を使用して処理するのが最善の方法です。これを行うには、DOM ツリーに要素を作成し、innerText
要素の を文字列に設定するだけです。次に、innerHTML
要素の を取得します。ブラウザは HTML エンコードされた文字列を返します。
function HtmlEncode(s)
{
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
}
テスト走行:
alert(HtmlEncode('&;\'><"'));
出力:
&;'><"
このHTMLエスケープ方法は、プロトタイプJSライブラリただし、私が示した単純なサンプルとは異なります。
注: 引用符 (二重引用符と単一引用符) は、自分でエスケープする必要があります。ここで他の人が説明している方法のいずれかを使用できます。