gpt4 book ai didi

javascript - 如果 URL 包含字符串 A 但不包含字符串 B,则重定向

转载 作者:行者123 更新时间:2023-11-29 23:18:13 26 4
gpt4 key购买 nike

这里经常讨论这个话题,但我仍然找不到可行的解决方案。

我要查看网址:

If contains String=A, but not String=C redirect to ...
Else if contains String=B, but not String=C redirect to ...
Else if contains String=C redirect to ...
Else redirect to ...

我的代码是:

if (
window.location.href.indexOf('String=A') > -1 && !
window.location.href.indexOf('String=C') > -1 ) {
window.location.href = "/subpage/" + document.location.search + '?#onlya';
}
else if (
window.location.href.indexOf('String=B') > -1 && !
window.location.href.indexOf('String=C') > -1 ) {
window.location.href = "/subpage/" + document.location.search + '#onlyb';
}
else if (
window.location.href.indexOf('String=C') > -1 ) {
window.location.href = "/subpage/" + document.location.search + '#containsc';
}
else {
window.location.href = "/subpage/" + document.location.search + '#foundnothing';
}

我已经尝试过

window.location.href.indexOf('String=C') != -1

等等..实际发生了什么:

  • xyz.com?String=A - 重定向到“/subpage#onlya”(正确!)
  • xyz.com?String=B - 重定向到“/subpage#onlyb”(正确!)
  • xyz.com?String=C - 重定向到“/subpage#containsc”(正确!)
  • xyz.com - 重定向到“/subpage#foundnothing”(正确!)

但是:

  • xyz.com?String=A&String=C - 重定向到“/subpage#onlya”(但应该重定向到“/subpage#containsc”

编辑解决方案:

  if (
window.location.href.indexOf('String=A') > -1 && !(window.location.href.indexOf('String=C') > -1 )
) {
window.location.href = "/subpage/" + document.location.search + '?#onlya';
}
else if (
window.location.href.indexOf('String=B') > -1 && !(window.location.href.indexOf('String=C') > -1 )
) {
window.location.href = "/subpage/" + document.location.search + '?#onlyb';
}
else if (
window.location.href.indexOf('String=C') > -1
) {
window.location.href = "/subpage/" + document.location.search + '?#containsc';
}
else {
window.location.href = "/subpage/" + document.location.search + '?#foundnothing';
}

最佳答案

indexOf 返回找到的字符串的索引,如果找不到则返回 -1。当你否定它时!除 0 以外的任何数字都将导致 false

条件(给定字符串)!window.location.href.indexOf('String=C') > -1等价于 false > -1 也就是 true

你可以通过像这样包装它来获得预期的结果:

!(window.location.href.indexOf('String=C') > -1 ) 或使用带双重否定的波浪号!!~window.location.href.indexOf('String=C') > -1

关于javascript - 如果 URL 包含字符串 A 但不包含字符串 B,则重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862767/

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