我有一个如下的网址。
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
。在某些情况下,它可能无法使用。
答案 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