如何检查查询string值是否通过JavaScript存在

我怎样才能检查查询string是否包含aq =在其中使用JavaScript / jQuery的?

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 

你也可以使用正则expression式:

 /[?&]q=/.test(location.search) 

简单的JavaScript代码示例,从字面上回答你的问题:

 return location.search.indexOf('q=')>=0; 

尝试查找q参数是否存在以及是否有值的普通javascript代码示例:

 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; 

多一个变种,但几乎相同的Gumbos解决scheme:

 var isDebug = function(){ return window.location.href.search("[?&]debug=") != -1; }; 

这个函数帮助你从JS中的URL获取参数

 function getQuery(q) { return (window.location.search.match(new RegExp('[?&]' + q + '=([^&]+)')) || [, null])[1]; } 

我已经使用过这个库,在你做了什么之后做了很好的工作。 特别:-

 qs.contains(name) Returns true if the querystring has a parameter name, else false. if (qs2.contains("name1")){ alert(qs2.get("name1"));} 

这应该有所帮助:

 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 {}; } } 

尝试这个

 //field "search"; var pattern = /[?&]search=/; var URL = location.search; if(pattern.test(URL)) { alert("Found :)"); }else{ alert("Not found!"); } 

JSFiddle: https ://jsfiddle.net/codemirror/zj4qyao2/