1. ホーム
  2. javascript

[解決済み] 特殊なHTMLエンティティを含む文字列をデコードする正しい方法は何ですか?[重複しています]。

2022-03-07 07:12:27

質問

サービスリクエストから、次のようなJSONが返ってきたとします。

{
    "message": "We're unable to complete your request at this time."
}

どうだろう 何故 は、アポストロフィーがそのようにエンコードされている ( ' ); 私が知っているのは、それをデコードしたいということだけです。

ここで、頭に浮かんだjQueryを使ったアプローチを一つ紹介します。

function decodeHtml(html) {
    return $('<div>').html(html).text();
}

それは(とても)ハチャメチャな気がしますが。何かいい方法はないでしょうか?正しい方法というのはあるのでしょうか?

解決方法は?

これは、私のお気に入りのHTML文字のデコード方法です。このコードを使う利点は、タグも保存されることです。

function decodeHtml(html) {
    var txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
}

http://jsfiddle.net/k65s3/

入力します。

Entity:&nbsp;Bad attempt at XSS:<script>alert('new\nline?')</script><br>

出力します。

Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>