জাভাস্ক্রিপ্টের মাধ্যমে কোনও ক্যোরি স্ট্রিংয়ের মান উপস্থিত রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


97

q=জাভা স্ক্রিপ্ট বা jQuery ব্যবহার করে ক্যোরির স্ট্রিংটিতে এটি রয়েছে কিনা আমি কীভাবে তা পরীক্ষা করতে পারি ?


এই সহায়তা খুব হতে পারে: stackoverflow.com/a/12151322 - সম্পর্কে তথ্য রয়েছে URLSearchParams : যেমন, var url = new URLSearchParams(location.search); url.has("my_great_query");আয় trueযদি কোয়েরি স্ট্রিং আপনার URL রয়েছে। তারপরে আপনি এর মানটি পেতে পারেন url.get("my_great_query");
ব্যবহারকারীর 1063287

উত্তর:


109
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

7
একাধিক রিটার্ন পাথগুলি একটি ব্যক্তিগত পছন্দ, আমি সেগুলি ব্যবহার করি কারণ আমি মনে করি তারা ক্লিনার কোডের দিকে নিয়ে যায়, যেহেতু তারা বিবৃতি দিলে বাসা থেকে বাঁচতে এবং কোডের একটি নির্দিষ্ট পয়েন্টে ঠিক কী চলছে তা দেখায় help স্টিক কেস হিসাবে, বাম এবং ডান হাত উভয় পক্ষই সর্বদা সংখ্যায় থাকবে, সুতরাং কঠোর সাম্য অপারেটরগুলির মধ্যে স্যুইচ করা কী পার্থক্য করবে?
লোরেনভিএস

4
ক্লিনার কোড? ... কেন পুরো সূচিহীন প্রাথমিক IF বিবৃতিতে রাখার পরিবর্তে কেবল সূচিপত্র অফ টেস্টটি ফিরিয়ে আনবেন না।
জেমস

4
আমি জেপির সাথে একমত আপনি সঠিক সমাধানটি লিখে থাকতে পারেন, তবে আপনার কোডটি সত্যই নিস্তেজ। কোথায় কোঁকড়া ধনুর্বন্ধনী? আপনার "দ্য গুড পার্টস" পড়তে হবে যেখানে কোঁকড়ানো ধনুর্বন্ধনী ছাড়াই স্টাইল লিখিত কোডটি কিছু নির্দিষ্ট শর্তে ব্যর্থ হয়েছে বলে প্রমাণিত হয়েছে এবং রক্ষণাবেক্ষণের সময় বিভ্রান্তি সৃষ্টি করে।

4
url.indexOf (ফিল্ড + '=')! = -1 যথেষ্ট মনে হয়েছিল think এটি শুরুতে আছে বা না তা
বিচার্য

4
@ হ্যাঁ না তা ছিল না। যদি আপনার কাছে কোনও ক্যোরি স্ট্রিং থাকে ?kodiaq=1, তবে url.indexOf('q=')এটির সাথে প্রাকটিফিকেশন না করে কল করা &বা ?আপনাকে qপ্যারামিটারটি উপস্থিত রয়েছে তা বিশ্বাস করতে পরিচালিত করবে ।
মাইকেলস্ট্যাঙ্কো

115

আপনি নিয়মিত এক্সপ্রেশনও ব্যবহার করতে পারেন:

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

4
প্রকৃতপক্ষে এটি আরও পছন্দ করবে: যদি (! নতুন রেজিপ্যাক্স ("[? &] hfPageToken =")। পরীক্ষা (s.data)) // যদি এইচএফপেজটোকেন ডেটা অনুরোধের মধ্যে ইতিমধ্যে উপস্থিত না থাকে {s.data = s.data ? [এস.ডাটা, টোকেনপরাম] .জইন ("&"): টোকেনপরাম; ।
ড্রাগোগস দুরলুট

9
কেবল স্পষ্ট করে if(/[?&]q=/.test(location.search)) { alert("match"); }বলতে গেলে , এটি দুর্দান্ত কাজ করে (@ ড্রাগাগস ডারলুট মন্তব্যের কারণে আমি কিছুটা বিভ্রান্ত হয়েছিলাম। :)
লিয়া

4
ইয়োদা নিয়মিত অভিব্যক্তি সম্পর্কে বলতেন: "সংক্ষিপ্ত কোড তারা হয় .. তারা পড়া সহজ হয় না"।
রায়লভলেস

24

ব্যবহার URL:

url = new URL(window.location.href);

if (url.searchParams.get('test')) {

}

সম্পাদনা: আপনি যদি সামঞ্জস্যের বিষয়ে দু: খিত হন তবে আমি অত্যন্ত https://github.com/medialize/URI.js/ পরামর্শ দেব ।


4
দুর্দান্ত, তবে কোনও IE সমর্থন করে না।
আপট্রিক্রি

4
@UpTheCreek দু: খজনকভাবে তাই প্রদর্শিত হচ্ছে। একটি সামঞ্জস্যপূর্ণ সংস্করণের জন্য আমাকে এটি স্যুইচ আউট করতে হয়েছিল। আমরা স্বপ্ন দেখতে পারি।
ড্যামিয়েন রোচে

9

সরল জাভাস্ক্রিপ্ট কোড নমুনা যা আপনার প্রশ্নের আক্ষরিক উত্তর দেয়:

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;

7
প্রথম উদাহরণটি সত্যই ফিরে আসবেfooq=bar
মিকাদাদু


3

এই ফাংশনটি আপনাকে জেএস-এ ইউআরএল থেকে পরামিতি পেতে সহায়তা করে

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


2

আধুনিক ব্রাউজারগুলিতে, URLSearchParamsইন্টারফেসের জন্য ধন্যবাদ এটি অনেক সহজ হয়ে উঠেছে । এটি একটি ইউআরএল এর ক্যোরি স্ট্রিংয়ের সাথে কাজ করার জন্য একটি হোস্ট ইউটিলিটি পদ্ধতির সংজ্ঞা দেয়।

আমাদের ইউআরএলটি ধরে নিলে 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

আরও পড়ার জন্য এখানে ক্লিক করুন



0

এটির সাহায্য করা উচিত:

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 {};
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.