2013-06-23 31 views
2

我有一段JavaScript代碼從我的博客(Blogger)的其他頁面中提取JSON字符串,但這些字符串中的許多特殊字符都是&#?????;,其中?????是數字5位數字,或者像\74br /\76,應該是<br />從JavaScript中的字符串中解碼混合的ASCII碼

兩者都混合在同一個字符串中,並且都看起來都是ASCII,第一個是decimal/html,第二個是八進制。

如何使用JavaScript將這個混亂解碼爲各自的字符?有沒有現有的功能或適當的解決方案呢?

+0

儘量只記錄字符串到控制檯。 – bfavaretto

回答

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;"); //"ÿ" 
相關問題