使用js替换url参数值

时间:2018-02-14 15:42:47

标签: javascript jquery

我有一个如下的网址。

something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false

我想将参数showHiddenElements的值替换为某个新值。

例如URL中的exing值 - > showHiddenElements=false

我想通过JavaScript将其更改为 - > showHiddenElements=true

请告知。

编辑: showHiddenElements可能并非总是false。在某些情况下,它可能无法使用。

5 个答案:

答案 0 :(得分:1)

您可以使用String.replace

var url = 'something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false';

newUrl = url.replace('showHiddenElements=false', 'showHiddenElements=true');

你也可以使用正则表达式:

var url = 'something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false';

newUrl = url.replace(/showHiddenElements=false$/, 'showHiddenElements=true');

正则表达式只会匹配showHiddenElements=false,如果它位于网址末尾

要查看它是否可用,您也可以使用正则表达式:

var url = 'something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false';

// If the url doesn't have a showHiddenElements=__any_word__
if (!url.match(/showHiddenElements=\w+/)) {
    url = url + 'showHiddenElements=false';
}

答案 1 :(得分:0)



var url = "something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false";
alert("Before: "+url);
url = url.replace("&showHiddenElements=false","&showHiddenElements=true");
alert("After: "+url);
//Console.log clips the end so we can't see the result :(




答案 2 :(得分:0)

也许就是这样:

var loc = window.location.href;
var newLoc = loc.Replace('showHiddenElements=true', 'showHiddenElements=false')

答案 3 :(得分:0)

如果您只是将URL视为字符串,那么JavaScript正则表达式应该会有所帮助。

var str = 'something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false';

var res = str.replace(/showHiddenElements/i, 'true');

console.log(res);

答案 4 :(得分:0)

使用URL对象:

const url = new URL('http://something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false');
url.searchParams.delete('showHiddenElements');
url.searchParams.append('showHiddenElements', true);

所以你只需删除参数并用新的参数更新(不是最优雅的) 文档:https://developer.mozilla.org/fr/docs/Web/API/URL