জিইটি পরামিতিগুলি থেকে কীভাবে মূল্য পাবেন?


1326

আমার কয়েকটি জিইটি প্যারামিটার সহ নিম্নরূপে একটি URL রয়েছে:

www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5 

আমার পুরো মানটি পাওয়া দরকার c। আমি ইউআরএল পড়ার চেষ্টা করেছি, তবে আমি পেয়েছি মাত্র m2। আমি জাভাস্ক্রিপ্ট ব্যবহার করে এটি কীভাবে করব?


আপনি একটি নতুন উত্তর পোস্ট করার আগে বিবেচনা করুন ইতিমধ্যে এই প্রশ্নের 50+ উত্তর রয়েছে। দয়া করে নিশ্চিত হন যে আপনার উত্তরটি এমন তথ্যের অবদান রাখে যা বিদ্যমান উত্তরের মধ্যে নেই।
জান্নিকস

উত্তর:


1996

ক্যোয়ারী স্ট্রিং প্যারামিটারগুলি পরিচালনা করার জন্য জাভাস্ক্রিপ্ট নিজেই কিছু তৈরি করে নি।

একটি (আধুনিক) ব্রাউজারে চলমান কোড আপনি URLঅবজেক্টটি ব্যবহার করতে পারেন (যা জেএসগুলিতে ব্রাউজারগুলির সরবরাহ করা এপিআইয়ের অংশ):

var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);


পুরানো ব্রাউজারগুলির জন্য (ইন্টারনেট এক্সপ্লোরার সহ), আপনি এই পলিফিল বা এই উত্তরটির মূল সংস্করণ থেকে কোডটি ব্যবহার করতে পারেন যা পূর্বে রয়েছে URL:

আপনি অ্যাক্সেস করতে পারতেন location.search, যা ?URL থেকে শেষ পর্যন্ত চরিত্র থেকে শুরু করে দেয় বা বিভাজন শনাক্তকারী (#foo) শুরু করবে, যেটি আগে আসে।

তারপরে আপনি এটি দিয়ে পার্স করতে পারেন:

function parse_query_string(query) {
  var vars = query.split("&");
  var query_string = {};
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    var key = decodeURIComponent(pair[0]);
    var value = decodeURIComponent(pair[1]);
    // If first entry with this name
    if (typeof query_string[key] === "undefined") {
      query_string[key] = decodeURIComponent(value);
      // If second entry with this name
    } else if (typeof query_string[key] === "string") {
      var arr = [query_string[key], decodeURIComponent(value)];
      query_string[key] = arr;
      // If third or later entry with this name
    } else {
      query_string[key].push(decodeURIComponent(value));
    }
  }
  return query_string;
}

var query_string = "a=1&b=3&c=m2-m3-m4-m5";
var parsed_qs = parse_query_string(query_string);
console.log(parsed_qs.c);

আপনি বর্তমান পৃষ্ঠার ইউআরএল থেকে ক্যোরিয় স্ট্রিংটি পেতে পারেন:

var query = window.location.search.substring(1);
var qs = parse_query_string(query);

পুরোনো ব্রাউজারে, আপনি একটি প্রয়োজন হতে পারে জন্য polyfillURL জন্য এক ছাড়াও URLSearchParams। অথবা আপনি var c = url.searchParams.get("c");উপরের উত্তরের লাইনটি প্রতিস্থাপন করে এই সমস্যাটি ডজ করতে পারেন var c = new URLSearchParams(window.location.search).get("c");
evanrmurphy

'=' ধারণকৃত মানগুলির জন্য parse_query_string ব্যর্থ হবে, যেমন একটি বেস 64 এনকোডেড মানকে মান হিসাবে পাস করার সময়। নীচের নিয়মিত এক্সপ্রেসন ব্যবহার করে সংস্করণটি আরও ভাল কাজ করে।
ম্যানেল ক্লোস

7
@ জামল্যান্ড - একেবারে এটি করবেন না। এটি জিনিস ভাঙ্গবে। এখানে একটি লাইভ ডেমোটি new URL() তার যুক্তি হিসাবে সঠিকভাবে এনকোড করা URL পাওয়ার প্রত্যাশা করে । সম্পূর্ণ ইউআরএল নয়, কোনও ইউআরএল এর উপাদানটিdecodeURIComponent পাস করার প্রত্যাশা করে ।
কোয়ান্টিন

@ কুইন্টিন আমি বিভিন্ন বিশেষ অক্ষর পরীক্ষা করেছি এবং আমি দেখছি আপনি ঠিক আছেন। decodeURIComponentএই ক্ষেত্রে ব্যবহার করা উচিত নয়
জামল্যান্ড

1
parse_query_stringফাংশনের একটি ডবল ডিকোড করে value=@ManelClos উল্লেখ ইস্যুকৃত দ্বিতীয় প্যারামিটারটি যোগ করে সুরাহা করা যেতে পারে 2( limit) এর vars[i].split()
জেক

242

বেশিরভাগ বাস্তবায়ন আমি দেখেছি ইউআরএল-ডিকোডিংয়ের নাম এবং মানগুলি মিস করে।

এখানে একটি সাধারণ ইউটিলিটি ফাংশন যা সঠিক URL- ডিকোডিংও করে:

function getQueryParams(qs) {
    qs = qs.split('+').join(' ');

    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
    }

    return params;
}

//var query = getQueryParams(document.location.search);
//alert(query.foo);

3
এই কোডটি কাজ করে না। এটি একটি অসীম লুপ তৈরি করে কারণ রেজেক্সটি লুপ সংজ্ঞাতে সংকলিত যা বর্তমান সূচকটি পুনরায় সেট করে। যদি আপনি লুপের বাইরে কোনও ভেরিয়েবলের মধ্যে রেজেক্স স্থাপন করেন তবে এটি সঠিকভাবে কাজ করে।
ম্যাকহাকিন্স

2
@ ম্যাক্সহাকিনস: এটি কিছু ব্রাউজারে কাজ করে যখন অন্যদের মধ্যে এটি অসীম লুপে যায়। আপনি এই ক্ষেত্রে অর্ধ-অধিকার। আমি কোডটি ক্রস ব্রাউজারে ঠিক করব। যে ইশারা জন্য ধন্যবাদ!
এটস গোরাল

3
@ জিটল এই ফাংশনটি পুরো ইউআরএল নয়, একটি ইউআরএল এর ক্যোয়ারী অংশের সাথে ব্যবহার করতে হবে। নীচে মন্তব্য-আউট ব্যবহারের উদাহরণ দেখুন।
এটস গোলাল

1
@ হারভে কেস সংবেদনশীলতা কোয়েরি পরামিতিগুলির উদ্বেগ নয়। এটি এমন একটি অ্যাপ্লিকেশন-নির্দিষ্ট জিনিসের মতো মনে হচ্ছে যা বরাবর বা ক্যোয়ারী প্যারামিটার নিষ্কাশনের উপরে প্রয়োগ করা উচিত।
এটস গোলাল

7
কেন qs.split('+').join(' ');এবং না qs.replace(/\+/g, ' ');?
ফ্লেমস্টর্ম

234

সূত্র

function gup( name, url ) {
    if (!url) url = location.href;
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( url );
    return results == null ? null : results[1];
}
gup('q', 'hxxp://example.com/?q=abc')

8
আমি এই বিকল্পটি সবচেয়ে পছন্দ করি তবে নাল, বা ফলাফলটি ফিরে আসতে পছন্দ করি তবে খালি স্ট্রিং নয়।
জেসন থ্রেশার

1
দেখে মনে হচ্ছে আপনার কিছু অতিরিক্ত পালানোর অক্ষর রয়েছে। "\\[" হতে হবে "\[". যেহেতু এগুলি নিয়মিত স্ট্রিং, তাই [এবং] পালানোর দরকার নেই।
এরিকপি

এটি কোনও সংবেদনশীল বিষয় নয়। এটিকে কে সংবেদনশীল করার জন্য আমি কোথায় "আমি" যুক্ত করব?
জিটা

সতর্কতা (গাপ ('ইউজারআইডি', উইন্ডো.লোকেশন। হ্রফ));
অরুণ প্রসাদ ES

6
মৃত লিঙ্ক @mottie
invot

202

এটি একটি মাত্র প্যারামিটার চেক করার একটি সহজ উপায়:

উদাহরণ ইউআরএল:

    http://myserver/action?myParam=2

জাভাস্ক্রিপ্ট উদাহরণ:

    var myParam = location.search.split('myParam=')[1]

যদি "মাইপ্যারাম" ইউআরএলে থাকে ... ভেরিয়েবল মাইপ্রামটিতে "2" থাকবে, অন্যথায় এটি অপরিজ্ঞাত হবে।

সম্ভবত আপনি একটি ডিফল্ট মান চান, সেক্ষেত্রে:

    var myParam = location.search.split('myParam=')[1] ? location.search.split('myParam=')[1] : 'myDefaultValue';

আপডেট: এটি আরও ভাল কাজ করে:

    var url = "http://www.example.com/index.php?myParam=384&login=admin"; // or window.location.href for current url
    var captured = /myParam=([^&]+)/.exec(url)[1]; // Value is in [1] ('384' in our case)
    var result = captured ? captured : 'myDefaultValue';

এবং ইউআরএল প্যারামিটারে পূর্ণ হলেও ঠিক এটি কাজ করে।


36
এটি কেবলমাত্র তখনই কার্যকর হয় যে আপনি যে পরামিতিটি ধরছেন তা ইউআরএল-এর সর্বশেষতম যা আপনার উপর নির্ভর করা উচিত নয় (এমনকি যদি আপনি কেবলমাত্র একটি প্যারামিটারের প্রত্যাশা করেন)। যেমন http://myserver/action?myParam=2&anotherParam=3না উত্পাদ হবে "2"কিন্তু "2&anotherParam=3"
হিমশীতল

39
(location.search.split('myParam=')[1]||'').split('&')[0]- একাধিক প্যারাম বা সম্ভাব্য নিখোঁজ সহ ব্যবহার করতে myParam
গবার ইম্রে

বাlocation.search.split('myParam=').splice(1).join('').split('&')[0]
জে.স্টেভ

1
আপনি আরও স্পষ্টতা লাভ এবং prepending দ্বারা প্যারামিটার কোনো আদেশ অনুমতি দিতে পারেন [?|&]হিসাবে[?|&]myParam=([^&]+)
1.21 gigawatts

1
আপনার মানটি ডিকোড করার দরকার হতে পারেresult = decodeURIComponent(result);
1.21 গিগাওয়াট

126

ব্রাউজার বিক্রেতারা ইউআরএল এবং ইউআরএল সার্চপ্যারামের মাধ্যমে এটি করার একটি স্থানীয় উপায় কার্যকর করেছে।

let url = new URL('http://www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('c'));  // outputs "m2-m3-m4-m5"

বর্তমানে ফায়ারফক্স, অপেরা, সাফারি, ক্রোম এবং এজগুলিতে সমর্থিত। ব্রাউজার সমর্থনের তালিকার জন্য এখানে দেখুন

https://developer.mozilla.org/en-US/docs/Web/API/URLS SearchParams https://developer.mozilla.org/en-US/docs/Web/API/URL/ URL

https://url.spec.whatwg.org/

গুগলের প্রকৌশলী এরিক বিডেলম্যান অসমর্থিত ব্রাউজারগুলির জন্য এই পলিফিলটি ব্যবহার করার পরামর্শ দেন


এমডিএন লিঙ্ক অনুসারে সাফারি সমর্থন URL তবে URLS SearchParams নয়।
মার্ক থমসন

3
@ মারকুভার কি পলিফিল সেদিকে খেয়াল রাখে না? BTW, সাফারি আধুনিক দিনের IE6 হয়
Csaba টথ

আমার জন্য new URLSearchParams("www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5").get('a')ফিরছে কেন null? (ক্রোম স্থিতিশীল)। bএবং cভাল কাজ বলে মনে হচ্ছে।
ripper234

আপডেট উত্তর। আমার মূল উত্তরটি সঠিকভাবে ইউআরএল সার্চপ্যারাম ব্যবহার করে নি, কারণ এটি কেবলমাত্র ইউআরএলটির ক্যোরিস্ট্রিং অংশের সাথে কাজ করার জন্য তৈরি করা হয়েছে।
cgatian

1
url.searchParamsপরিবর্তে ব্যবহার করুন new URLSearchParams(url.search)
কায়ো তারিফা

86

বহু যুগ আগেও আমি এটি পেয়েছি:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,    
    function(m,key,value) {
      vars[key] = value;
    });
    return vars;
  }

তারপরে এটিকে কল করুন:

var fType = getUrlVars()["type"];

7
+1 দুর্দান্ত সমাধান - মার্জিত, দক্ষ এবং বুদ্ধিমান হ'ল ব্যবহারের শর্তাদি। অন্যান্য স্বীকৃত সমাধানের চেয়ে আমার উদ্দেশ্যগুলির জন্য ভাল
এলিমেন্টাল

সংক্ষিপ্ত + সরল + শক্তিশালী = দুর্দান্ত
অজস্র

1
খুব সুন্দর, এটি উইন্ডো.লোকেশন এইচআরফের পরিবর্তে লোকেশন.সন্ধান ব্যবহার করেও কাজ করে
ফ্যাবিও সি।

1
@pdxbmw এটি অকেজো এবং এটি সরানো উচিত। কোডটি প্রথম নজরে চতুর মনে হতে পারে তবে খুব ভালভাবে ভাবা হয় না। উন্নতি: decodeURIComponent()মূল্য ব্যবহার করুন, কারণ আপনি সাধারণত এটির সাথে কাজ করতে চান; window.location.searchপরিবর্তে ব্যবহার করুন window.location.href, কারণ আপনি কেবলমাত্র প্যারামিটারগুলিতেই আগ্রহী, পুরো ইউআরএল নয়।
লিফ

2
@ লিফের পরামর্শটি দুর্দান্ত কাজ করেছে। আমি একটি আইডি 142 # এ পাচ্ছিলাম কারণ URL এর শেষে একটি বোতাম ক্লিকে # টি উত্পন্ন হয়েছিল। ফাংশনটি এইভাবে রেখে var vars = {}; window.location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars;
আন্দ্রেস রামোস

77

আপনি ক্যোয়ারী স্ট্রিংটি এতে পেতে পারেন location.search, তারপরে আপনি প্রশ্ন চিহ্নের পরে সবকিছুকে বিভক্ত করতে পারেন:

var params = {};

if (location.search) {
    var parts = location.search.substring(1).split('&');

    for (var i = 0; i < parts.length; i++) {
        var nv = parts[i].split('=');
        if (!nv[0]) continue;
        params[nv[0]] = nv[1] || true;
    }
}

// Now you can get the parameters you want like so:
var abc = params.abc;

3
প্যারামিটারের নাম এবং মানগুলি ইউআরএল-ডিকোডিং সম্পর্কে কী?
এটস গোলাল

এই পদ্ধতির অ্যারেগুলি পরিচালনা করে না। যেমন ?array[]=1&array[]=2উত্পাদন করে {"array[]": "2"}, যা স্পষ্টতই ভুল।
কাফসো

@ কাফোসো এখানে পরিষ্কার বা সঠিক কোন ভুল নেই। প্রথমত, একই নামগুলির সাথে পুনরাবৃত্তি ক্ষেত্রগুলির কোনও নির্দিষ্ট মানক আচরণ নেই এবং এটি পরিচালনা করতে পার্সার অবধি। অতিরিক্তভাবে, []কিছু কিছু ক্ষেত্রে প্যাটার্নটির কেবল একটি অর্থ রয়েছে (যেমন, পিএইচপি), তবে অন্য নয়। সুতরাং "স্পষ্টত ভুল" নয় - কেবলমাত্র এমন একটি মানহীন কেস পরিচালনা করার জন্য প্রয়োগ করা হয়নি যা আপনাকে হ্যান্ডেল করার প্রয়োজন হতে পারে বা প্রয়োজনও হতে পারে।
Blixt

38

আমি আরও সহজ এবং মার্জিত সমাধান লিখেছি।

var arr = document.URL.match(/room=([0-9]+)/)
var room = arr[1];

দুটি লাইনটি দেখুন, এটি টিনের উপরে যা বলেছে ঠিক তেমন করে - এবং কেউ যদি দুর্বলতার জন্য তদন্ত করার চেষ্টা করছে এবং এই সমাধানগুলির দু'টির বিপরীতে একাধিক অতিরিক্ত অক্ষর এবং কোয়েরি যুক্ত করে তবে তা ভাঙবে না। চিয়ার্স চ্যাপ!
ডেভিড জি

এটি কাজটি সঠিক এবং কেবল 2 লাইনে করে। দুর্দান্ত উত্তর!
আন্দ্রেস রামোস

আমি মনে করি এটি নাল জন্য অন্য একটি চেক অন্তর্ভুক্ত করা সহজ হবে। যদি তা না হয় তবে একটি উদাহরণ এখানে রয়েছে: stackoverflow.com/a/36076822/1945948 (আমার একটি সম্পাদনা প্রচেষ্টা প্রত্যাখ্যান করা হয়েছিল)।
06

বুঝতে পারছেন না ... 'www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5' নির্দিষ্ট স্ট্রিং থেকে প্যারাম পাওয়ার বিষয়ে এই প্রশ্নের কীভাবে উত্তর দেয়?
মাইকে রডেন্ট

এই উত্তরটি পছন্দ করেছে, +1 করেছে। শুধু একটি প্রস্তাব, আপনি প্রতিস্থাপন করতে পারেন [0-9] জন্য\d
gmanjon

31

ইউআরএল সার্চপ্যারাম ব্যবহার করে একটি দুর্দান্ত সহজ উপায় ।

function getParam(param){
  return new URLSearchParams(window.location.search).get(param);
}

এটি বর্তমানে ক্রোম, ফায়ারফক্স, সাফারি, এজ এবং অন্যান্যগুলিতে সমর্থিত ।


ত্রুটিটি পান: এজতে চলাকালীন 'SQLT5009:' URLS SearchParams 'সংজ্ঞায়িত করা হয়নি'।
Andreas Presthammer

@ আন্দ্রেস প্রেস্টহ্যামার প্রান্তের কোন সংস্করণ?
spencer.sm

@ স্পেন্সার-এসএম মাইক্রোসফ্ট এজ 41.16299.820.0
আন্দ্রেস প্রেস্টামার


@ iiiml0sto1 "পূর্বনির্ধারিত ইউআরএল প্যারামিটার" কী?
spencer.sm

30

এখানে একটি পুনরাবৃত্ত সমাধান রয়েছে যার কোনও রেইগেক্স নেই এবং এতে ন্যূনতম মিউটেশন রয়েছে (কেবলমাত্র প্যারাম অবজেক্টটি মিউটেটেড, যা আমি বিশ্বাস করি জেএসে অনিবার্য)।

এটি দুর্দান্ত কারণ এটি:

  • পুনরাবৃত্ত হয়
  • একই নামের একাধিক পরামিতি পরিচালনা করে
  • ত্রুটিযুক্ত প্যারামিটার স্ট্রিংগুলির সাথে ভালভাবে ডিল করে (ভুলে যাওয়া মান, তাই)
  • '=' মান থাকলে ভাঙবে না
  • ইউআরএল ডিকোডিং সম্পাদন করে
  • এবং সবশেষে, এটি দুর্দান্ত কারণ এটি ... আরগ !!!

কোড:

var get_params = function(search_string) {

  var parse = function(params, pairs) {
    var pair = pairs[0];
    var parts = pair.split('=');
    var key = decodeURIComponent(parts[0]);
    var value = decodeURIComponent(parts.slice(1).join('='));

    // Handle multiple parameters of the same name
    if (typeof params[key] === "undefined") {
      params[key] = value;
    } else {
      params[key] = [].concat(params[key], value);
    }

    return pairs.length == 1 ? params : parse(params, pairs.slice(1))
  }

  // Get rid of leading ?
  return search_string.length == 0 ? {} : parse({}, search_string.substr(1).split('&'));
}

var params = get_params(location.search);

// Finally, to get the param you want
params['c'];

31
আপনি ... আপনি দুবার পুনরাবৃত্তি বলেছিলেন।
ডিসিসিডেন্ট রেজ

এটি পরবর্তী
ইউআরএলে

হাই মারিও, এখানে একটি জেএসফিডেল এটি সেই ইউআরএলটির সাথে কাজ করে দেখায়: jsfiddle.net/q6xfJ - আপনি যদি কোনও ত্রুটি খুঁজে পেয়ে থাকেন তবে এটি সম্ভবত ব্রাউজারটি নির্দিষ্ট? পরীক্ষা করার সময়, দয়া করে নোট করুন যে আমি যে উত্তর সরবরাহ করেছি তাতে অবস্থানের ব্যবহার হয়। অনুসন্ধান, যা URL এর '' প্রথম = 1 এবং দ্বিতীয় = 2 'অংশ? চিয়ার্স :)
জয়

45
কেন কিছু ভাল তা কেবল পুনরাবৃত্ত হওয়ার কারণে আমি দেখতে পাচ্ছি না।
অ্যাডাম আরল্ড

6
এরম, আমি মনে করি আপনি সেখানে পুনরাবৃত্তি রসিকতা মিস করেছেন অ্যাডাম। যদিও এখন সবাই এটিকে মিস করবে কারণ এডি৯৯৯৯৯ দ্বিতীয়টি "ই রিকার্সিভিউ" সরিয়েছে।
জয়

27

আমি একটি ফাংশন তৈরি করেছি যা এটি করে:

var getUrlParams = function (url) {
  var params = {};
  (url + '?').split('?')[1].split('&').forEach(function (pair) {
    pair = (pair + '=').split('=').map(decodeURIComponent);
    if (pair[0].length) {
      params[pair[0]] = pair[1];
    }
  });
  return params;
};

5/26/2017 আপডেট করুন, এখানে একটি ES7 বাস্তবায়ন রয়েছে (ব্যাবেল প্রিসেট পর্যায় 0, 1, 2 বা 3 দিয়ে চলে):

const getUrlParams = url => `${url}?`.split('?')[1]
  .split('&').reduce((params, pair) =>
    ((key, val) => key ? {...params, [key]: val} : params)
    (...`${pair}=`.split('=').map(decodeURIComponent)), {});

কিছু পরীক্ষা:

console.log(getUrlParams('https://google.com/foo?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('/foo?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('?a=1&b=2&c')); // Will log {a: '1', b: '2', c: ''}
console.log(getUrlParams('https://google.com/')); // Will log {}
console.log(getUrlParams('a=1&b=2&c')); // Will log {}

আপডেট 3/26/2018, এখানে একটি টাইপস্ক্রিপ্ট বাস্তবায়ন:

const getUrlParams = (search: string) => `${search}?`
  .split('?')[1]
  .split('&')
  .reduce(
    (params: object, pair: string) => {
      const [key, value] = `${pair}=`
        .split('=')
        .map(decodeURIComponent)

      return key.length > 0 ? { ...params, [key]: value } : params
    },
    {}
  )

আপডেট 2/13/2019, এখানে একটি আপডেট টাইপস্ক্রিপ্ট বাস্তবায়ন যা টাইপস্ক্রিপ্ট 3 এর সাথে কাজ করে।

interface IParams { [key: string]: string }

const paramReducer = (params: IParams, pair: string): IParams => {
  const [key, value] = `${pair}=`.split('=').map(decodeURIComponent)

  return key.length > 0 ? { ...params, [key]: value } : params
}

const getUrlParams = (search: string): IParams =>
  `${search}?`.split('?')[1].split('&').reduce<IParams>(paramReducer, {})

কোনও জিজ্ঞাসা পরামিতি ছাড়াই একটি URL এ এটি ফিরে আসবেObject {"": ""}
ইলিয়া সেমেনভ

2
আমার কাছে যথেষ্ট পরিষ্কার দেখাচ্ছে। বাকি উত্তরগুলি যথেষ্ট ব্যাখ্যা ব্যতিরেকে কেবলমাত্র খুব বেশি "জাদু"।
লেভি রবার্টস

এটি একটি দুর্দান্ত উত্তর!
স্পেন্সার বিগুম

ধন্যবাদ @ স্পেন্সারবিগাম!
নাট ফেরেরো

24

এটা দেখ

function getURLParameters(paramName)
{
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0)
    {
        var arrParams = sURL.split("?");
        var arrURLParams = arrParams[1].split("&");
        var arrParamNames = new Array(arrURLParams.length);
        var arrParamValues = new Array(arrURLParams.length);

        var i = 0;
        for (i = 0; i<arrURLParams.length; i++)
        {
            var sParam =  arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];
            if (sParam[1] != "")
                arrParamValues[i] = unescape(sParam[1]);
            else
                arrParamValues[i] = "No Value";
        }

        for (i=0; i<arrURLParams.length; i++)
        {
            if (arrParamNames[i] == paramName)
            {
                //alert("Parameter:" + arrParamValues[i]);
                return arrParamValues[i];
            }
        }
        return "No Parameters Found";
    }
}

1
ধন্যবাদ। আমি jscript এ নতুন এবং এটি বেশ সহায়ক হবে।
ব্রায়ান বি

20

ECMAScript 6 সমাধান:

var params = window.location.search
  .substring(1)
  .split("&")
  .map(v => v.split("="))
  .reduce((map, [key, value]) => map.set(key, decodeURIComponent(value)), new Map())

খুশী হলাম। এফওয়াইআই, কারণ এটি একটি মানচিত্র, ব্যবহার হ'ল প্যারাম.জেট ("কী");
খ্রিস্টান

আমি এটি পছন্দ করি তবে সম্ভবত এটি প্রথম পরম পাবে না। আমি একটি ফাংশন আপনার উদাহরণ উপর ভিত্তি করে নির্মিত function urlParams(url) { const [, searchParams = ''] = url.split('?') return searchParams.split('&') .map(v => v.split('=')) .reduce((map, [key = '', value]) => key.length ? map.set(key, decodeURIComponent(value)) : map, new Map()) }
mah.cr

11

আমি ব্যবহার করি

function getVal(str) {
    var v = window.location.search.match(new RegExp('(?:[\?\&]'+str+'=)([^&]+)'));
    return v ? v[1] : null;
}

দয়া করে কিছু ব্যাখ্যা যুক্ত করুন। আপনার উত্তরটি বর্তমানে "নিম্নমানের" হিসাবে চিহ্নিত হয়েছে এবং শেষ পর্যন্ত ছাড়াই মুছে ফেলা হতে পারে।
জোহানেস জেন্ডার

আমি দেখেছি url এর শেষে '#ID' মত একটি পংক্তি সেখানে আছে যদি, এবং পছন্দ 'somevalue # আইডি' শেষ প্যারামিটার মান
Ayano

@ আয়ানোতে window.location.searchহ্যাশ লাইক অন্তর্ভুক্ত থাকবে না #id
ফ্যানসিউং

@ ফ্যানসিউং হ্যাঁ, আপনি ঠিক বলেছেন, আমি একটি ভুল করেছি যে ফলাফলটির location.hrefপরিবর্তে ফলাফলের সাথে মেলে ব্যবহার করেছি location.searchyou ধন্যবাদ আপনাকে।
অায়ানো


9

এখানে আমার সমাধান। যেমন অ্যান্ডি ই এই প্রশ্নের জবাব দেওয়ার সময় পরামর্শ দিয়েছিলেন , আপনার স্ক্রিপ্টের পারফরম্যান্সের পক্ষে ভাল না যদি এটি বারবার বিভিন্ন রেজেক্স স্ট্রিং, চালিত লুপ ইত্যাদির জন্য একক মান অর্জন করে get সুতরাং, আমি একটি সহজ স্ক্রিপ্ট নিয়ে এসেছি যা একক বস্তুতে সমস্ত জিইটি প্যারামিটার দেয়। আপনার এটি একবারে কল করা উচিত, ফলাফলটি একটি ভেরিয়েবলের জন্য নির্ধারণ করুন এবং তারপরে, ভবিষ্যতের যে কোনও মুহুর্তে, উপযুক্ত কীটি ব্যবহার করে সেই ভেরিয়েবলের থেকে আপনার পছন্দসই মানটি পাওয়া উচিত। নোট করুন যে এটি ইউআরআই ডিকোডিংয়ের (যেমন% 20 টির মতো জিনিসগুলি) যত্ন করে এবং + একটি স্থান দিয়ে প্রতিস্থাপন করে:

 function getUrlQueryParams(url) {
  var queryString = url.split("?")[1];
  var keyValuePairs = queryString.split("&");
  var keyValue = [];
  var queryParams = {};
  keyValuePairs.forEach(function(pair) {
    keyValue = pair.split("=");
    queryParams[keyValue[0]] = decodeURIComponent(keyValue[1]).replace(/\+/g, " ");
});
  return queryParams;
}

সুতরাং, আপনার দেখার জন্য এখানে স্ক্রিপ্টের কয়েকটি পরীক্ষা দেওয়া হল:

// Query parameters with strings only, no special characters.
var currentParams = getUrlQueryParams("example.com/foo?number=zero");
alert(currentParams["number"]); // Gives "zero".

// For the URL you stated above...
var someParams = getUrlQueryParams("www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5 ");
alert(someParams["c"]); // Gives "m2-m3-m4-m5".

// For a query params with URI encoding...
var someParams = getUrlQueryParams("www.example.com/t.html?phrase=a%20long%20shot&location=Silicon+Valley%2C+USA");
alert(someParams["phrase"]); // Gives "a long shot".
alert(someParams["location"]); // Gives "Silicon Valley, USA".

.replace ("+", "") কেবলমাত্র প্রথম ঘটনাটি প্রতিস্থাপন করবে আপনার .replace (/ \ + / g, "") ব্যবহার করা উচিত;
টনি

8

অথবা আপনি যদি ইউআরআই পার্সিং হুইল ব্যবহার করে ইউআরআই.জেএস পুনরায় উদ্ভাবন করতে না চান

Foo নামের একটি প্যারামিটারের মান পেতে:

new URI((''+document.location)).search(true).foo

কি যে হয়

  1. ডকুমেন্ট.লোকেশনকে স্ট্রিংয়ে রূপান্তর করুন (এটি একটি বস্তু)
  2. সেই স্ট্রিংটি ইউআরআই.জেএস এর ইউআরআই শ্রেণির কনস্ট্রাক্টরকে খাওয়ান
  3. ইউআরএলটির অনুসন্ধান (কোয়েরি) অংশ পেতে অনুসন্ধান () ক্রিয়াকলাপটি আহ্বান করুন (
    সত্য দিয়ে যাওয়া কোনও বস্তুকে আউটপুট করতে বলে)
  4. মান পেতে ফলাফল অবজেক্টের foo সম্পত্তি অ্যাক্সেস করুন

এটির জন্য এখানে একটি মূর্খতা রয়েছে .... http://jsfiddle.net/m6tett01/12/


8

জন্য একক প্যারামিটার মান এই index.html মত কোড নিম্নলিখিত? বার্তা = 1 ব্যবহার,

$(window).load(function(){
    queryString();
});

function queryString()
{
    var queryString = window.location.search.substring(1);
    var varArray = queryString.split("="); //eg. index.html?msg=1

    var param1 = varArray[0];
    var param2 = varArray[1];

}

জন্য সকল প্যারামিটার মান ব্যবহার নিম্নলিখিত কোড,

$(window).load(function(){
    queryString();
});

function queryString()
{
    var queryString = window.location.search;
    var varArray = queryString.split("&");
    for (var i=0;i<varArray.length;i++) {
      var param = varArray[i].split("=");
        //parameter-value pair
    }
} 

1
আমি এই সমাধান পছন্দ!
আলেমুর

8

এখানে আমি একটি উদাহরণ পোস্ট করছি। তবে এটি jQuery এ। আশা করি এটি অন্যকে সহায়তা করবে:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.url.js"></script>

<!-- URL:  www.example.com/correct/?message=done&year=1990-->

<script type="text/javascript">
$(function(){
    $.url.attr('protocol')  // --> Protocol: "http"
    $.url.attr('path')          // --> host: "www.example.com"
    $.url.attr('query')         // --> path: "/correct/"
    $.url.attr('message')   // --> query: "done"
    $.url.attr('year')      // --> query: "1990"
});
</script>

1
আপনার অন্যান্য পোস্ট থেকে অনুলিপি করা হয়েছে: "ইউআরএল প্লাগইন প্রয়োজন: প্লাগইনস.জকোরি / ইউআর"
জেট

8

সংক্ষিপ্ততম উপায়:

new URL(location.href).searchParams.get("my_key");

2
কোনও ইউআরএল এর প্রথম ক্যোয়ারী প্যারামিটারটি পুনরুদ্ধার করার পরে উত্তরটি ব্যর্থ new URL(location.href).searchParams.get("my_key")হয়ে যাবে বলে আমি সমর্থন URLSearchParamsকরব।
ট্র্যাভিস ক্লার্ক

1
উভয় রূপ পরীক্ষা করেছেন ested আমি আপনার সাথে একমত. উত্তরটি সম্পাদনা করেছেন।
জোন

7

এই প্রশ্নের অনেক উত্তর রয়েছে, তাই আমি অন্য একটি যুক্ত করছি।

/**
 * parses and returns URI query parameters 
 * 
 * @param {string} param parm
 * @param {bool?} asArray if true, returns an array instead of a scalar 
 * @returns {Object|Array} 
 */
function getURIParameter(param, asArray) {
    return document.location.search.substring(1).split('&').reduce(function(p,c) {
        var parts = c.split('=', 2).map(function(param) { return decodeURIComponent(param); });
        if(parts.length == 0 || parts[0] != param) return (p instanceof Array) && !asArray ? null : p;
        return asArray ? p.concat(parts.concat(true)[1]) : parts.concat(true)[1];
    }, []);
}

ব্যবহার:

getURIParameter("id")  // returns the last id or null if not present
getURIParameter("id", true) // returns an array of all ids

খালি প্যারামিটার (এই কীগুলি ব্যতীত উপস্থিত "=value"), এই স্কেলার এবং অ্যারে-ভিত্তিক মান পুনরুদ্ধার এপিআই উভয়ের এক্সপোজার, পাশাপাশি যথাযথ ইউআরআই উপাদান ডিকোডিং সহ এই অনুলিপিগুলি।


7

replace()পদ্ধতিটি ব্যবহারের সবচেয়ে সহজ উপায় :

urlStrস্ট্রিং থেকে :

paramVal = urlStr.replace(/.*param_name=([^&]*).*|(.*)/, '$1');

বা বর্তমান ইউআরএল থেকে :

paramVal = document.URL.replace(/.*param_name=([^&]*).*|(.*)/, '$1');

ব্যাখ্যা:

  • document.URL - ইন্টারফেস স্ট্রিং হিসাবে নথির অবস্থান (পৃষ্ঠা url) প্রদান করে।
  • replace()- পদ্ধতি কিছু বা একটি সব ম্যাচ দিয়ে একটি নতুন স্ট্রিং ফেরৎ প্যাটার্ন একটি দ্বারা প্রতিস্থাপিত প্রতিস্থাপন
  • /.*param_name=([^&]*).*/- নিয়মিত এক্সপ্রেশন প্যাটার্ন স্ল্যাশগুলির মধ্যে আবদ্ধ যার অর্থ:
    • .* - শূন্য বা আরও কোনও অক্ষর,
    • param_name= - পরম নাম যা সার্চ করা হয়েছে,
    • () - নিয়মিত প্রকাশে গ্রুপ,
    • [^&]*- এক বা একাধিক অক্ষর বাদ দিয়ে &,
    • | - বিকল্প,
    • $1 - নিয়মিত প্রকাশে প্রথম গোষ্ঠীর রেফারেন্স।

var urlStr = 'www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5';
var c = urlStr.replace(/.*c=([^&]*).*|(.*)/, '$1');
var notExisted = urlStr.replace(/.*not_existed=([^&]*).*|(.*)/, '$1');
console.log(`c === '${c}'`);
console.log(`notExisted === '${notExisted}'`);


1
দুর্দান্ত সমাধান, তবে যদি প্যারামিটারটি পাওয়া না যায় তবে পুরো স্ট্রিংটি ফিরে আসে। আমি এই ক্ষেত্রে "অপরিজ্ঞাত" আশা করব would
পেনসান

1
হাই @ পেনসান, আপনার দুর্দান্ত মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমি যখনই প্যারামিটারটি ইউআরএলে উপস্থিত হয় না তখন আমি নিয়মিত প্রকাশে পরিস্থিতিটির পরিচালনা পরিচালনা যুক্ত করি। এই ক্ষেত্রে আমরা এমটি স্ট্রিং পাই (পুরো স্ট্রিং নয়)।
সিংহুমিলিকো

6

তবুও আরেকটি পরামর্শ।

ইতিমধ্যে কিছু ভাল উত্তর রয়েছে তবে আমি এগুলি অযথা জটিল এবং বোঝা শক্ত found এটি সংক্ষিপ্ত, সহজ, এবং URL- এ টোকেন নামের সাথে সম্পর্কিত মূল নামগুলির সাথে একটি সাধারণ সংঘবদ্ধ অ্যারে প্রদান করে।

যারা শিখতে চান তাদের জন্য আমি নীচের মন্তব্যে একটি সংস্করণ যুক্ত করেছি।

নোট করুন এটি লুপের জন্য jQuery ($ .each) এর উপর নির্ভর করে যা আমি forEach এর পরিবর্তে প্রস্তাবিত করি। পুরানো ব্রাউজারগুলিতে যে কোনও নতুন ফাংশন সমর্থিত নয়, সমর্থন করার জন্য স্বতন্ত্র ফিক্সগুলিতে প্লাগিংয়ের চেয়ে বোর্ড জুড়ে jQuery ব্যবহার করে ক্রস ব্রাউজারের সামঞ্জস্যতা নিশ্চিত করা সহজ বলে মনে করি।

সম্পাদনা: আমি এটি লেখার পরে আমি এরিক এলিয়টের উত্তর লক্ষ্য করেছিলাম, যা প্রায় একই, যদিও এটি প্রতিটি ক্ষেত্রে ব্যবহার করে, আমি সাধারণত (উপরে বর্ণিত কারণে) এর বিপরীতে।

function getTokens(){
    var tokens = [];
    var query = location.search;
    query = query.slice(1);
    query = query.split('&');
    $.each(query, function(i,value){    
        var token = value.split('=');   
        var key = decodeURIComponent(token[0]);     
        var data = decodeURIComponent(token[1]);
        tokens[key] = data;
    });
    return tokens;
}

মন্তব্য করা সংস্করণ:

function getTokens(){
    var tokens = [];            // new array to hold result
    var query = location.search; // everything from the '?' onward 
    query = query.slice(1);     // remove the first character, which will be the '?' 
    query = query.split('&');   // split via each '&', leaving us an array of something=something strings

    // iterate through each something=something string
    $.each(query, function(i,value){    

        // split the something=something string via '=', creating an array containing the token name and data
        var token = value.split('=');   

        // assign the first array element (the token name) to the 'key' variable
        var key = decodeURIComponent(token[0]);     

        // assign the second array element (the token data) to the 'data' variable
        var data = decodeURIComponent(token[1]);

        tokens[key] = data;     // add an associative key/data pair to our result array, with key names being the URI token names
    });

    return tokens;  // return the array
}

নীচের উদাহরণগুলির জন্য আমরা এই ঠিকানাটি ধরে নেব:

http://www.example.com/page.htm?id=4&name=murray

আপনি ইউআরএল টোকেনকে নিজের ভেরিয়েবলের জন্য বরাদ্দ করতে পারেন:

var tokens = getTokens();

তারপরে প্রতিটি ইউআরএল টোকেনকে এই নামে উল্লেখ করুন:

document.write( tokens['id'] );

এটি "4" মুদ্রণ করবে।

আপনি সরাসরি ফাংশন থেকে আ টোকেন নামটি সরাসরি উল্লেখ করতে পারেন:

document.write( getTokens()['name'] );

... যা "মারে" মুদ্রণ করবে।


6
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

// Usage for URL: http://my.site.com/location?locationId=53cc272c0364aefcb78756cd&shared=false
var id = getUrlVars()["locationId"];

এখান থেকে পেয়েছেন: http://jquery-howto.blogspot.ru/2009/09/get-url-paraters-values-with-jquery.html


6

সহজ উপায়

function getParams(url){
        var regex = /[?&]([^=#]+)=([^&#]*)/g,
            params = {},
            match;
        while(match = regex.exec(url)) {
            params[match[1]] = match[2];
        }
        return params;
    }

তারপরে এটিকে getParams (url) এর মতো কল করুন


5

আমার কাছে ইউআরএল জিইটি ভেরিয়েবলটি পড়ার এবং ইউআরএল প্যারামিটারের উপর ভিত্তি করে একটি ক্রিয়া সম্পূর্ণ করার দরকার ছিল। আমি সমাধানের জন্য উচ্চ এবং নিম্ন সন্ধান করেছি এবং কোডটির এই সামান্য অংশটি দেখতে পেয়েছি। এটি মূলত বর্তমান পৃষ্ঠার ইউআরএল পড়ে, ইউআরএলটিতে কিছু নিয়মিত অভিব্যক্তি সম্পাদন করে তারপরে কোনও এসোসিয়েটিভ অ্যারেতে url পরামিতিগুলি সংরক্ষণ করে, যা আমরা সহজেই অ্যাক্সেস করতে পারি।

সুতরাং উদাহরণ হিসাবে যদি আমাদের কাছে নীচে জাভাস্ক্রিপ্টের সাথে নীচে url থাকে।

http://TestServer/Pages/NewsArchive.aspx?year=2013&Month=July

পরামিতিগুলির আইডি এবং পৃষ্ঠাটি পেতে আমাদের যা করতে হবে তা হ'ল:

কোডটি হ'ল:

<script type="text/javascript">
var first = getUrlVars()["year"];
var second = getUrlVars()["Month"];

alert(first);
alert(second);
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>

আমার জন্য ধন্যবাদ ধন্যবাদ
ওজেবি 1

5
// http:localhost:8080/path?param_1=a&param_2=b
var getParamsMap = function () {
    var params = window.location.search.split("&");
    var paramsMap = {};
    params.forEach(function (p) {
        var v = p.split("=");
        paramsMap[v[0]]=decodeURIComponent(v[1]);
    });
    return paramsMap;
};

// -----------------------

console.log(getParamsMap()["param_1"]);  // should log "a"     

এটি 'দিয়ে প্রথম প্যারামিটারটি ফেরত দেয়?'
পিনি চেনি

5

এলডন ম্যাকগুইনেসের এই গিস্টটি এখন পর্যন্ত আমি দেখেছি এমন একটি জাভাস্ক্রিপ্ট ক্যোয়ারী স্ট্রিং পার্সারের সর্বাধিক সম্পূর্ণ বাস্তবায়ন।

দুর্ভাগ্যক্রমে, এটি jQuery প্লাগইন হিসাবে লেখা।

আমি এটি ভ্যানিলা জেএসতে আবার লিখেছি এবং কয়েকটি উন্নতি করেছি:

function parseQuery(str) {
  var qso = {};
  var qs = (str || document.location.search);
  // Check for an empty querystring
  if (qs == "") {
    return qso;
  }
  // Normalize the querystring
  qs = qs.replace(/(^\?)/, '').replace(/;/g, '&');
  while (qs.indexOf("&&") != -1) {
    qs = qs.replace(/&&/g, '&');
  }
  qs = qs.replace(/([\&]+$)/, '');
  // Break the querystring into parts
  qs = qs.split("&");
  // Build the querystring object
  for (var i = 0; i < qs.length; i++) {
    var qi = qs[i].split("=");
    qi = qi.map(function(n) {
      return decodeURIComponent(n)
    });
    if (typeof qi[1] === "undefined") {
      qi[1] = null;
    }
    if (typeof qso[qi[0]] !== "undefined") {

      // If a key already exists then make this an object
      if (typeof (qso[qi[0]]) == "string") {
        var temp = qso[qi[0]];
        if (qi[1] == "") {
          qi[1] = null;
        }
        qso[qi[0]] = [];
        qso[qi[0]].push(temp);
        qso[qi[0]].push(qi[1]);

      } else if (typeof (qso[qi[0]]) == "object") {
        if (qi[1] == "") {
          qi[1] = null;
        }
        qso[qi[0]].push(qi[1]);
      }
    } else {
      // If no key exists just set it as a string
      if (qi[1] == "") {
        qi[1] = null;
      }
      qso[qi[0]] = qi[1];
    }
  }
  return qso;
}

// DEMO
console.log(parseQuery("?foo=bar&foo=boo&roo=bar;bee=bop;=ghost;=ghost2;&;checkbox%5B%5D=b1;checkbox%5B%5D=b2;dd=;http=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab&http=http%3A%2F%2Fw3schools2.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab"));

আরও দেখুন এই বেহালার


আমি জাভাস্ক্রিপ্ট সম্পর্কে যা বুঝতে পারি না তা হ'ল তারা কেন ভাষা তৈরি করতে বা কমপক্ষে কোনও মানের লাইব্রেরিতে ইউআরএল পার্সিং ফাংশন তৈরি করে নি? নিম্ন স্তরের স্টাফগুলি এটিকে পুনরায় নতুন করে তৈরি করা উচিত নয়, বা বিকাশকারীদের এন্টারপ্রাইজিকভাবে বৈকল্পিক সমাধানগুলি চাবুকের জন্য ব্যবহার করতে দেওয়া হবে না। যদি এটি শক্ত হয়, তবে এর মতো কিছু স্ট্যান্ডার্ড লাইব্রেরিতে তৈরি করা উচিত। এটি জাভাস্ক্রিপ্টে জিনিসটির ধরণের একটি উদাহরণ যা আমাকে ভাষাতে সরিয়ে দেয়।
অহনিবিজ্যাকড

5

মার্জিত, কার্যকরী শৈলী সমাধান

আসুন কী হিসাবে ইউআরএল প্যারামের নাম সম্বলিত একটি বস্তু তৈরি করি, তারপরে আমরা সহজেই এর নামটি দিয়ে প্যারামিটারটি বের করতে পারি:

// URL: https://example.com/?test=true&orderId=9381  

// Build an object containing key-value pairs
export const queryStringParams = window.location.search
  .split('?')[1]
  .split('&')
  .map(keyValue => keyValue.split('='))
  .reduce<QueryStringParams>((params, [key, value]) => {
    params[key] = value;
    return params;
  }, {});

type QueryStringParams = {
  [key: string]: string;
};


// Return URL parameter called "orderId"
return queryStringParams.orderId;

এটি ভালোবাসুন, তবে হ্রাস ফাংশনে
এলা

@ এলা এটি একটি টাইপো ছিল, এটি ছাড়া return

এখন আরও ভাল দেখাচ্ছে, আসুন আশা করি আপনি এটি প্রথম পৃষ্ঠায় তৈরি করেছেন!
এলা

4

আমি যা করি তা এখানে:

var uriParams = getSearchParameters();
alert(uriParams.c);


// background functions:

// Get object/associative array of URL parameters
function getSearchParameters () {
  var prmstr = window.location.search.substr(1);
  return prmstr !== null && prmstr !== "" ? transformToAssocArray(prmstr) : {};
}

// convert parameters from url-style string to associative array
function transformToAssocArray (prmstr) {
  var params = {},
      prmarr = prmstr.split("&");

  for (var i = 0; i < prmarr.length; i++) {
    var tmparr = prmarr[i].split("=");
    params[tmparr[0]] = tmparr[1];
  }
  return params;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.