我正在使用第三方API(即Read it Later API),我注意到所有字符串都按以下格式返回:
的http:&安培;#92; /&安培;#92; /www.fourhourworkweek.com\ /博客&安培;#92; / 2007&安培;#92; / 11&安培;#92; / 07&安培;#92; /如何学习的-b Philip Greenspun的博客\ u00bb愚蠢的白人批评聪明的中国女人
现在,我知道'\'真的是'\'而且“\ u00bb”真的代表\ u00bb,代表'»'。
但是我究竟如何使用Javascript解码呢?
答案 0 :(得分:2)
此字符串已经过JavaScript转义,然后是HTML编码。
首先你需要解码HTML:
var foo = "http:\/\/www.fourhourworkweek.com\/blog\/2007\/11\/07\/how-to-learn-b Philip Greenspun's Weblog \u00bb Stupid white man criticizes smart Chinese woman";
var element = document.createElement('div');
element.innerHTML = foo;
foo = element.firstChild.data;
然后是JavaScript。
不幸的是,我不知道这样做的好方法,所以我诉诸eval
。如果您能找到更好的方法,请发表评论!
foo = eval("'" + foo.replace("'", "\\'").replace('\n', '\\n') + "'");
alert(foo);
答案 1 :(得分:0)
你为什么不使用str.replace?像这样:
var str="http:\/\/www.fourhourworkweek.com\/blog\/2007\/11\/07\/how-to-learn-b Philip Greenspun's Weblog \u00bb Stupid white man criticizes smart Chinese woman";
str=str.replace (/\/ig,"\\");
结果JSfiddle
答案 2 :(得分:-1)
该字符串看起来已转义,请尝试通过javascript中的unescape(string)
函数运行您的字符串,这样可以返回原始版本。