अगर q=जावास्क्रिप्ट या 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/ ।
सादा जावास्क्रिप्ट कोड नमूना जो आपके प्रश्न का शाब्दिक उत्तर देता है:
return location.search.indexOf('q=')>=0;
सादे जावास्क्रिप्ट कोड नमूना जो खोजने की कोशिश करता है कि क्या 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;
};
इसे इस्तेमाल करे
//field "search";
var pattern = /[?&]search=/;
var URL = location.search;
if(pattern.test(URL))
{
alert("Found :)");
}else{
alert("Not found!");
}
आधुनिक ब्राउज़रों में, यह बहुत आसान हो गया है, इसके लिए धन्यवाद 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
मैंने इस लाइब्रेरी का उपयोग किया है, इससे पहले कि आप इसके बाद बहुत अच्छा काम करते हैं। विशेष रूप से: -
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 {};
}
}
var url = new URLSearchParams(location.search); url.has("my_great_query");रिटर्नtrueयदि क्वेरी स्ट्रिंग अपने यूआरएल में है। इसके बाद आप इसका मूल्य प्राप्त कर सकते हैंurl.get("my_great_query");।