q=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
?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;
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;
fooq=bar
もう1つのバリアントですが、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にある場合。その後、でその値を取得できますurl.get("my_great_query");。