我正在掙扎着一些魔法。我試圖從URL上點擊刪除parametr值:Javascript double string.replace()
function removeParam(name, value) {
var newUrl = window.location.href.split("?")[0],
sourceURL = window.location.href,
param,
params_arr = [],
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
if (queryString !== "") {
params_arr = queryString.split("&");
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
param = params_arr[i].split("&")[0];
if (param.indexOf(name) !== -1) {
if (params_arr[i].indexOf("%s") !== -1) {
params_arr[i] = param.replace("%s" + value , "");
params_arr[i] = param.replace(value , "");
}
else {
params_arr[i] = param.replace(name + "=" + value, "");
}
}
}
if (params_arr[0] !== "") {
newUrl = newUrl + "?" + params_arr.join("&");
}
}
window.history.pushState(null,"", newUrl);
刪除值Ç從VAR
來源網址:/?var=A%sB%sC
網址應-是:/?var=A%sB
我可以有多個參數與相應的值,如 源URL:/?var=A%sB%sC&var2=D%sE%sF
但神奇的是,如果我添加第二個STR:params_arr[i] = param.replace(value , "");
它將刪除只Ç不分離:%S
如何解決呢?
我添加了第二個替換,因爲我需要從頭中刪除值。
所以,你想要得到的URL值?那麼[位置](https://developer.mozilla.org/en-US/docs/Web/API/Location)對象呢? –
我知道如何去做:)我只是不明白爲什麼如果我添加另一個str.replace它將添加分隔符。在調試器中,我可以看到第二個str.replace什麼都不做,只是在下一步它無意間添加了分隔符 – Scorpa