我有一个类似下面的URL。
something.com/TaskHandler/search.do?action=search&category=basic&page=1&sortBy=NAME&Ascending=true&showHiddenElements=false我想将参数showHiddenElements的值替换为某个新值。
例如,用于在URL -> showHiddenElements=false中存在值
我想通过JavaScript将其更改为-> showHiddenElements=true
请给我建议。
编辑:showHiddenElements可能并不总是false。在某些情况下,它可能不可用。
发布于 2018-02-14 23:47:01
为此,您可以使用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');您也可以使用regex来实现它:
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位于URL的末尾时才会匹配它
要查看它是否可用,您也可以使用regex:
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';
}发布于 2018-02-14 23:50:42
使用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
发布于 2018-02-14 23:46:59
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 :(
https://stackoverflow.com/questions/48791015
复制相似问题