我有一個非常愚蠢的問題,其中JavaScript正在用URL中的'%2F'替換每個'/'。這是我現在有:JavaScript替換/,str.replace無法正常工作
var url;
url = $(this).val();
url = str.replace('%2F', '/');
window.location.href = $(this).val();
我在這裏做了什麼錯了?
我有一個非常愚蠢的問題,其中JavaScript正在用URL中的'%2F'替換每個'/'。這是我現在有:JavaScript替換/,str.replace無法正常工作
var url;
url = $(this).val();
url = str.replace('%2F', '/');
window.location.href = $(this).val();
我在這裏做了什麼錯了?
您需要解碼url以將特殊字符轉換回它們應該是的(例如將%2F
更改回/
)。要做到這一點,你可以用decodeURI
:
url = $(this).val();
url = decodeURI(url);
但是,有時空格就會被+
而不是%20
取代。因此,要處理這些情況,您必須在解碼您的網址之前將+
全部替換爲%20
。
url = $(this).val();
url = url.replace('+', '%20');
url = decodeURI(url);
而現在url
是URL的解碼版本。
當我將最後一行更改爲window.location.href = url;?時,仍然收到'%2F',是否有遺漏/錯誤代碼的其餘部分? – user2585051
你究竟在做什麼?您希望窗口網址中包含這些字符(如'%2F'和'%20')。請解釋你正在努力完成的事情。 – forgivenson
我想要做的是直接到基於用戶從主頁上的表單中選擇的特定頁面。 – user2585051
'str'變量來自哪裏? –
我想你的意思是把'url = url.replace('%2F','/');' – forgivenson
另外,你的「真正愚蠢的問題」不是問題。 url被編碼,所以某些字符被改變,包括'/'。例如,空格變爲'%20'。 – forgivenson