首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用js替换url参数值

使用js替换url参数值
EN

Stack Overflow用户
提问于 2018-02-14 23:42:47
回答 5查看 4.4K关注 0票数 0

我有一个类似下面的URL。

代码语言:javascript
复制
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。在某些情况下,它可能不可用。

EN

回答 5

Stack Overflow用户

发布于 2018-02-14 23:47:01

为此,您可以使用String.replace

代码语言:javascript
复制
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来实现它:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-02-14 23:50:42

使用URL对象:

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2018-02-14 23:46:59

代码语言:javascript
复制
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 :(

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48791015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档