如何q=使用JavaScript或jQuery 检查查询字符串中是否包含?
Answers:
var field = 'q';
var url = window.location.href;
if(url.indexOf('?' + field + '=') != -1)
return true;
else if(url.indexOf('&' + field + '=') != -1)
return true;
return false
?kodiaq=1,则在url.indexOf('q=')不带前缀的情况下调用&或?会使您认为该q参数存在。
您还可以使用正则表达式:
/[?&]q=/.test(location.search)
if(/[?&]q=/.test(location.search)) { alert("match"); }(由于@DragosDurlut评论,我有点困惑。:)
使用URL:
url = new URL(window.location.href);
if (url.searchParams.get('test')) {
}
编辑:如果您对兼容性感到难过,我强烈建议https://github.com/medialize/URI.js/。
简单的javascript代码示例,从字面上回答您的问题:
return location.search.indexOf('q=')>=0;
普通的javascript代码示例,尝试查找q参数是否存在以及是否具有值:
var queryString=location.search;
var params=queryString.substring(1).split('&');
for(var i=0; i<params.length; i++){
var pair=params[i].split('=');
if(decodeURIComponent(pair[0])=='q' && pair[1])
return true;
}
return false;
fooq=bar
还有另一种变体,但与Gumbos解决方案几乎相同:
var isDebug = function(){
return window.location.href.search("[?&]debug=") != -1;
};
在现代浏览器中,由于有了 URLSearchParams界面的。这定义了许多实用程序方法来使用URL的查询字符串。
假设我们的URL是https://example.com/?product=shirt&color=blue&newuser&size=m,则可以使用window.location.search以下命令获取查询字符串:
const queryString = window.location.search;
console.log(queryString);
// ?product=shirt&color=blue&newuser&size=m
然后,您可以使用解析查询字符串的参数URLSearchParams:
const urlParams = new URLSearchParams(queryString);
然后,您可以对结果调用其任何方法。
例如, URLSearchParams.get()将返回与给定搜索参数关联的第一个值:
const product = urlParams.get('product')
console.log(product);
// shirt
const color = urlParams.get('color')
console.log(color);
// blue
const newUser = urlParams.get('newuser')
console.log(newUser);
// empty string
您可以使用 URLSearchParams.has()用来检查某个参数是否存在:
console.log(urlParams.has('product'));
// true
console.log(urlParams.has('paymentmethod'));
// false
如需进一步阅读,请单击此处。
这应该有助于:
function getQueryParams(){
try{
url = window.location.href;
query_str = url.substr(url.indexOf('?')+1, url.length-1);
r_params = query_str.split('&');
params = {}
for( i in r_params){
param = r_params[i].split('=');
params[ param[0] ] = param[1];
}
return params;
}
catch(e){
return {};
}
}
var url = new URLSearchParams(location.search); url.has("my_great_query");返回true。然后,您可以通过获取它的价值url.get("my_great_query");。