干净的方法将所有“&#..”字符替换为URL中的正常字符

时间:2014-03-10 10:45:25

标签: javascript

无法找到任何解决方案,所以:我有一个网址,其中有一些糟糕的cgaracters,例如:

var wwwlink = 'http://www.nytimes.com/2014/03/10/business/staking-1-billion-that-herbalife-will-fail-then-ackman-lobbying-to-bring-it-down.html?hp&_r=0';

是否有一个干净的解决方案可以将所有可能的&#.. thigs解码为普通字符?我找到的唯一可能的解决方案是 .replace 一个,对任何可能的角色都有几个.replace调用。当然,解决方案是可行的,因为在大多数情况下,网址可以替换5个不同的字符,但可能有更好的字符吗?

编辑:解决方案必须在node.js下运行。

1 个答案:

答案 0 :(得分:3)

您可以尝试:

var div = document.createElement('div');
    div.innerHTML = wwwlink;

var output = div.firstChild.nodeValue;

输出:

http://www.nytimes.com/2014/03/10/business/staking-1-billion-that-herbalife-will-fail-then-ackman-lobbying-to-bring-it-down.html?hp&_r=0 

对于node.js,你可以拍摄:

var Entities = require('html-entities').XmlEntities;
entities = new Entities();
console.log(entities.decode(wwwlink));