2011-05-26 49 views
1

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

例子:

Name#039;s 

#之前有&,这原本应该是:

Name's 

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

+0

不是真的到你的* *的核心问题有关,但不应该的“名称”多是“名” ? – Piskvor 2011-05-26 10:01:32

+1

我只是举例与语法无关。为了你的缘故,让我把它改成“Piskvor's”。我的问题是撇号。 – 2011-05-26 11:07:24

回答

1

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

有在Javascript中没有可用的HTML实体解码器,但由于您使用的是浏览器工作,如果字符串被认为是安全,你可以做以下(在JQuery中,例如)

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

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

编辑:我刚刚意识到你发布的JSP输出并不是真正的HTML实体;为了处理给你的每一个#1234;前,应使用以下,添加&并使其&#1234;的例子:

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

+1假设字符串是'名称' s'而不是'Name#039; s'这样的工作 – Chad 2011-05-26 15:27:31

+0

其名称' s'只 – 2011-05-27 07:00:56

+0

这里是我的代码的一小部分'var splCharUrl =““;'。这是动态生成的。所以当撇号出现一些值时,'''代替了这个值。 – 2011-05-27 07:15:46

相关问题