如何在JavaScript中使用unescape()函数?

时间:2011-05-26 09:33:52

标签: encoding decoding javascript

我有一个JSP页面,其中我有一个JavaScript函数,在单击链接时将调用它。现在,当值到达JavaScript函数时,撇号被编码。

示例:

Name#039;s

在#之前有&,最初应该是:

Name's

我使用了unescape()解码功能,但似乎没有任何效果。最后,我不得不删除字符并添加撇号。有谁知道解决这个问题?是不是JSP不支持&的编码?当我在这个页面中写入相同的编码值时,它将符号更改为撇号,这是我在代码中想要的。

1 个答案:

答案 0 :(得分:1)

内置Javascript函数,例如unescape()decodeURIComponent()与您正在处理的字符串无关,因为您要解码的字符是HTML entites。

Javascript中没有HTML entites解码器,但由于您使用的是浏览器,如果该字符串被视为安全,您可以执行以下操作(例如,在JQuery中)

var str = $('<p />').html(str).text();

它基本上将字符串作为HTML插入<p>元素,然后在其中提取文本。

编辑:我只是意识到你发布的JSP输出不是真正的HTML实体;要处理给定的示例,您应该使用以下内容,在每&之前添加#1234;并将其设为&#1234;

var str = $('<p />').html(str.replace(/\#(\d+)\;/g '&#$1;')).text();