2011-05-26 50 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

相關問題