使用javascript将HTML Character Entities转换回常规文本

nua*_*vee 17 javascript character-entities

问题说明了一切:)

例如.我们有>,我们>只需要使用javascript

更新:似乎jquery是一个简单的出路.但是,拥有轻量级解决方案会很不错.更像是一个能够自己完成这项任务的功能.

Gum*_*mbo 28

你可以这样做:

String.prototype.decodeHTML = function() {
    var map = {"gt":">" /* , … */};
    return this.replace(/&(#(?:x[0-9a-f]+|\d+)|[a-z]+);?/gi, function($0, $1) {
        if ($1[0] === "#") {
            return String.fromCharCode($1[1].toLowerCase() === "x" ? parseInt($1.substr(2), 16)  : parseInt($1.substr(1), 10));
        } else {
            return map.hasOwnProperty($1) ? map[$1] : $0;
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

  • @nuaavee:不,那是[基本的SGML/HTML](http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.3). (3认同)

ken*_*bec 19

function decodeEntities(s){
    var str, temp= document.createElement('p');
    temp.innerHTML= s;
    str= temp.textContent || temp.innerText;
    temp=null;
    return str;
}

alert(decodeEntities('<'))

/*  returned value: (String)
<
*/
Run Code Online (Sandbox Code Playgroud)

  • 在不受信任(用户输入的)文本上使用这是不安全的.请参阅此评论http://stackoverflow.com/questions/1147359/how-to-decode-html-entities-using-jquery#comment6018122_2419664 (2认同)