gpt4 book ai didi

javascript - 更新 url 中的查询字符串

转载 作者:行者123 更新时间:2023-11-30 16:52:35 25 4
gpt4 key购买 nike

我想通过单击复选框来更新 url 查询字符串。这是代码,它不能正常工作

param1=param1=true
param1=param1=param1=false
param1=param1=param1=param1=true

代替:

param1=false
param1=true

这是一个未重构的代码:

if (this.checked) {
if (window.location.href.search('[?&]') === -1) {
window.history.pushState('object or string', 'Title', window.location.href + '?param1=true');
} else {
window.history.pushState('object or string', 'Title', window.location.href.replace(/param1=false|true/i, 'param1=true'));
}

} else {
if (window.location.href.search('[?&]') === -1) {
window.history.pushState('object or string', 'Title', window.location.href + '?param1=false');
} else {
window.history.pushState('object or string', 'Title', window.location.href.replace(/param1=false|true/i, 'param1=false'));
}
}

最佳答案

考虑一下:

> 'param1=false'.replace(/param1=false|true/i, 'param1=true')
"param1=true"
> 'param1=true'.replace(/param1=false|true/i, 'param1=true')
"param1=param1=true"
> 'true'.replace(/param1=false|true/i, 'param1=true')
"param1=true"

关键是您的正则表达式接受 param1=false 或仅接受 true。您需要将 false|true 部分放在一个组中(在括号中),以使 | 也不适用于 param1= 部分。所以你的正则表达式应该是 /param1=(false|true)/i:

> 'param1=true'.replace(/param1=(false|true)/i, 'param1=true')
'param1=true'

关于javascript - 更新 url 中的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30287880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com