在JavaScript中解码来自字符串的混合ASCII代码

时间:2013-06-23 02:33:42

标签: javascript ascii decode blogger data-conversion

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

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

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

1 个答案:

答案 0 :(得分:4)

这些应该让你入门

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;"); //"ÿ"