1. ホーム
  2. ジャバスクリプト

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

2022-04-01 06:29:17

質問

サービスリクエストから、次のような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>