如何检查url查询字符串是不是等于javascript(或jquery)[重复]
Posted
技术标签:
【中文标题】如何检查url查询字符串是不是等于javascript(或jquery)[重复]【英文标题】:How to check if url query string equals something with javascript (or jquery) [duplicate]如何检查url查询字符串是否等于javascript(或jquery)[重复] 【发布时间】:2021-10-12 19:40:09 【问题描述】:我知道这个问题似乎有点绕,但 90% 的答案都指向一个对我不起作用的解决方案 (indexof > -1)。
if ( window.location.href.indexOf("product=3") > -1 || window.location.href.indexOf("product=2") > -1 )
alert('success');
else
alert('nothing');
问题在于,对于产品 30,这也会提示成功。
是否有一个简单的解决方案可以检测 url 查询字符串中的完全匹配。
例如
mycoolsite.com/cart/?type=buynow&product=30
如果乘积等于 30,我们如何使用 javascript 或 jquery 进行检查?
【问题讨论】:
欢迎来到 Stack Overflow。我建议查看***.com/questions/4656843/… 使用最佳答案,您可以获得所有值,所以现在您可以检查它是3
还是30
。
感谢@Twisty,非常有帮助。在我的搜索中没有看到这个。已经应用它并且效果很好。谢谢!
【参考方案1】:
使用以下内容:Get querystring from URL using jQuery
我建议如下:
$(function()
function getUrlVars(url)
var vars = ,
hash;
if (url.indexOf("?") < 0)
return false;
var hashes = url.substring(url.indexOf("?") + 1)
$.each(hashes.split("&"), function(i, v)
hash = v.split('=');
vars[hash[0]] = hash[1];
);
//console.log(url, hashes, vars);
return vars;
var queryData;
queryData = getUrlVars(window.location.href + "?buynow&product=3");
console.log(queryData);
queryData = getUrlVars(window.location.href + "?buynow&product=3&product=2");
console.log(queryData);
queryData = getUrlVars(window.location.href + "?buynow&product[]=3&product[]=2");
console.log(queryData);
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="result"></div>
此代码有一些注意事项。正如您在我的测试中看到的那样,如果您有多个项目,如果相同的变量名称或索引,它将覆盖其他值。它也不会在数组中读取。您可以为此添加一个检查并编写一个函数来处理数组部分。
如果您的 Query Hash 总是更基本的,这可以很好地工作。
【讨论】:
【参考方案2】:已按照 Twisty 在 cmets 中的推荐使用了这篇文章中的功能,并且效果很好。
Get querystring from URL using jQuery
【讨论】:
以上是关于如何检查url查询字符串是不是等于javascript(或jquery)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何进行`if`检查键入的单词是不是等于C中字符串列表中的某个单词? [复制]