用JavaScript解码字符串中的混合ASCII代码

Decode mixed ASCII codes from a string in JavaScript

本文关键字:混合 ASCII 代码 JavaScript 解码 字符串      更新时间:2023-09-26

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

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

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

这些应该会让你开始

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