2010-11-03 57 views
2

我有一些HTML代碼是由PHP的用urlencode輸出 - 基本上是錨的一個簡單的一堆看起來像這樣:轉義/在一個+解碼的字符串時,它

<a href="#i+have+some+spaces">link1</a> 

我使用jQuery採取點擊時看看所有這些引用,但是,我似乎無法使用任何瀏覽器的內部函數對其進行解碼。我必須自己更換+嗎?

unescape('Video+Games'); // returns Video+Games 
decodeURI('Video+Games'); // returns Video+Games 
decodeURIComponent('Video+Games'); // returns Video+Games 

回答

2

我認爲你需要做自己的.replace(),如:

href.replace(/\+/g, ' '); 

編輯:我原本以爲是指定這一個MDC文件,但最近我現在可以找到這個筆記。

https://developer.mozilla.org/Talk:en/JavaScript/Reference/Global_Objects/decodeURIComponent

我可能已經從MDC encodeURIComponent docs認爲這記:

對於應用程序/ X WWW的形式,進行了urlencoded(POST),每HTTP://www.w3。 org/TR/html401/interac ... m-content-type,空格將被替換爲'+',所以人們可能希望跟隨一個encodeURIComponent替換,並用「+」替代「%20」。