2

我有一个 JavaScript 代码,可以从我的博客 (Blogger) 的其他页面中提取 JSON 字符串,但这些字符串中的许多特殊字符是 as &#?????;,其中?????是一个最多 5 位的数字,或者类似于\74br /\76,应该是<br />.

两者都混合在同一个字符串中,并且似乎都是 ASCII,第一个是十进制/html,第二个是八进制。

如何使用 JavaScript 将这种混乱解码为各自的字符?是否有任何现有的功能或适当的解决方案?

4

1 回答 1

3

这些应该让你开始

function decodeHtmlNumeric( str ) {
    return str.replace( /&#([0-9]{1,7});/g, function( g, m1 ){
        return String.fromCharCode( parseInt( m1, 10 ) );
    }).replace( /&#[xX]([0-9a-fA-F]{1,6});/g, function( g, m1 ){
        return String.fromCharCode( parseInt( m1, 16 ) );
    });
}

function decodeOctal( str ) {
    return str.replace( /\\([0-7]+)/g, function( g, m1 ) {
        return String.fromCharCode( parseInt( m1, 8 ) );
    });
}
           //Double \\ = one backslash 
decodeOctal("\\74br /\\76"); //"<br />"
decodeHtmlNumeric("&#255;"); //"ÿ"
于 2013-06-23T14:26:05.000 回答