我有一个JavaScript代码,可以从我的博客(Blogger)的其他页面中提取JSON字符串,但这些字符串中的许多特殊字符都是&#?????;
,其中?????
是一个最多5个的数字数字,或\74br /\76
之类的数字,应为<br />
。
两者混合在同一个字符串中,两者似乎都是ASCII,第一个是十进制/ html,第二个是八进制。
如何使用JavaScript将这个混乱解码为各自的角色?是否有任何现有的功能或适当的解决方案?
答案 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("ÿ"); //"ÿ"