如何检查查询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/