2014-03-12 105 views
0

我有一個非常愚蠢的問題,其中JavaScript正在用URL中的'%2F'替換每個'/'。這是我現在有:JavaScript替換/,str.replace無法正常工作

var url; 
url = $(this).val(); 
url = str.replace('%2F', '/'); 
window.location.href = $(this).val(); 

我在這裏做了什麼錯了?

+0

'str'變量來自哪裏? –

+1

我想你的意思是把'url = url.replace('%2F','/');' – forgivenson

+1

另外,你的「真正愚蠢的問題」不是問題。 url被編碼,所以某些字符被改變,包括'/'。例如,空格變爲'%20'。 – forgivenson

回答

0

您需要解碼url以將特殊字符轉換回它們應該是的(例如將%2F更改回/)。要做到這一點,你可以用decodeURI

url = $(this).val(); 
url = decodeURI(url); 

但是,有時空格就會被+而不是%20取代。因此,要處理這些情況,您必須在解碼您的網址之前將+全部替換爲%20

url = $(this).val(); 
url = url.replace('+', '%20'); 
url = decodeURI(url); 

而現在url是URL的解碼版本。

+0

當我將最後一行更改爲window.location.href = url;?時,仍然收到'%2F',是否有遺漏/錯誤代碼的其餘部分? – user2585051

+0

你究竟在做什麼?您希望窗口網址中包含這些字符(如'%2F'和'%20')。請解釋你正在努力完成的事情。 – forgivenson

+0

我想要做的是直接到基於用戶從主頁上的表單中選擇的特定頁面。 – user2585051