কীভাবে ইউএসএল প্যারামিটারটি জিকুয়ারি বা প্লেইন জাভাস্ক্রিপ্ট ব্যবহার করে পাবেন?


617

আমি প্রচুর jQuery উদাহরণ দেখেছি যেখানে প্যারামিটারের আকার এবং নাম অজানা।

আমার ইউআরএলটিতে কেবল 1 টি স্ট্রিং থাকবে:

http://example.com?sent=yes

আমি কেবল সনাক্ত করতে চাই:

  1. না sentরয়েছে?
  2. এটি কি "হ্যাঁ" সমান?




সবচেয়ে ভালো সমাধান আমার দেখা [এখানে] [1] [1]: stackoverflow.com/a/901144/3106590
hmfarimani

1
এর জন্য এখন একটি প্লাগইন / গ্রন্থাগার রয়েছে, যাকে ইউআরআই.জেস বলা হয়: github.com/medialize/URI.js
alexw

উত্তর:


1211

এখানে সেরা সমাধান ।

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
};

এবং এইভাবে আপনি এই URL টি ধরে ধরে এই ফাংশনটি ব্যবহার করতে পারেন
http://dummy.com/?technology=jquery&blog=jquerybyexample

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');

8
ধন্যবাদ! তবে এটি অনুলিপি করার সময়, আমি সেখানে একটি শেষের দিকে শূন্য প্রস্থের সাদা স্থান (\ u200b) জড়িত একটি বাজে চমক পেয়েছি। স্ক্রিপ্টটি তৈরিতে একটি অদৃশ্য সিনট্যাক্স ত্রুটি রয়েছে।
ক্রিস্টোফার ওহলসন

11
একটি falseবা nullখালি সন্ধানের জন্য ফিরে আসুন
স্টেফানো কারভানা

4
এই সমাধানটি আমার জন্য বেশ ভালভাবে কাজ করে আমি কেবলমাত্র ভেরিপেজ ইউআরএল = ডিকোডুরি (উইন্ডো.লোকেশন.সর্চ.সুবস্ট্রিং (1)) ব্যবহার করেছি; % 20 টি অক্ষরকে সাদা স্পেসে রূপান্তর করতে এবং প্যারামিটারটি না মিলে আমি কিছুই না করে একটি খালি স্ট্রিং ফিরিয়ে আনছি।
ক্রিস্টোফ

18
আমি এই মন্তব্যের উপরে সমস্ত মন্তব্য কোড পরিবর্তন অন্তর্ভুক্ত উত্তর আপডেট করেছি।
রব ইভান্স

7
ডিকোডিংটি প্যারামিটার মানতে করা উচিত (যেমন আইওরির পরামর্শ অনুসারে)। যদি ইউআরএলটিতে ডিকোডিংটি করা হয় (উত্তর হিসাবে), কোনও এনকোডযুক্ত &বা =প্যারামিটার মান আছে তবে এটি সঠিকভাবে কাজ করবে না ।
জাকিনস্টার 13

286

2020 থেকে সমাধান

আমাদের রয়েছে: http://example.com?sent= চোখ

let searchParams = new URLSearchParams(window.location.search)

পাঠানো কি বিদ্যমান ?

searchParams.has('sent') // true

এটি কি "হ্যাঁ" সমান ?

let param = searchParams.get('sent')

এবং তারপরে এটি কেবল তুলনা করুন।


16
আমি মনে করি এটি ব্রাউজারগুলিতে সমর্থিত নয় তবে কেন এটি ব্যবহার করা উচিত? রেফারেন্স - ডেভেলপার.মোজিলা.আর.ইন-
ইউএস

1
@p_champ আপনি ঠিক বলেছেন। কিন্তু আপনি ব্যবহার করতে পারেন URLSearchParams জন্য polyfill
Optio

2
বর্তমানে আইই / এজ এ কাজ করছেন না, তাই বৈশিষ্ট্য সনাক্তকরণ করুন: if ('URLSearchParams' in window) { // Browser supports URLSearchParams} এখানে দেখুন
এমএফজিমিক

4
আমার এবং আমার উদ্দেশ্যে দর্শকদের পক্ষে যথেষ্ট ভাল। caniuse.com/#feat=urlsearchparams
joutsai

4
@p_champ এজ ভি 17 (এপ্রিল 2018) এ সমর্থন পেয়েছে। আইই মারা যায়।
রায়ান ডুভাল

198

ইউআরএলকে প্যারামিটার হিসাবে সঞ্চিত ডায়নামিক ভেরিয়েবলগুলি পেতে jQuery কোড স্নিপেট এবং আপনার স্ক্রিপ্টগুলির সাথে ব্যবহারের জন্য জাভাস্ক্রিপ্ট ভেরিয়েবল হিসাবে সংরক্ষণ করুন:

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (results==null) {
       return null;
    }
    return decodeURI(results[1]) || 0;
}

example.com?param1=name¶m2=&id=6

$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null

স্পেস সহ উদাহরণস্বরূপ প্যারাম

http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));  
//output: Gold%20Coast



console.log(decodeURIComponent($.urlParam('city'))); 
//output: Gold Coast

12
দ্রষ্টব্য: প্যারামিটার বা উমলতে ইত্যাদি চরিত্রগুলির ক্ষেত্রে আপনার ডিকোড করা দরকার তাই এর পরিবর্তে return results[1] || 0;হওয়া উচিতreturn decodeURI(results[1]) || 0;
কাই নাক

কেবল কৌতূহলী, ফলাফলটির || 0জন্য ইতিমধ্যে একটি চেক রয়েছে বলে কেন এটির অংশটি প্রয়োজন , এটি কি সবসময় ম্যাচের অ্যারেটি ফেরত দেবে না?
এয়ারউইক 219

@ এয়ারউইক 2121 একটি উপযুক্ত ব্যর্থ সাফ।
অনর্থক

2
এখানে, হয় সম্ভবত, মূল উৎস: sitepoint.com/url-parameters-jquery কিন্তু এই উত্তর কিছু নতুন ধারণা যোগ করা হয়েছে
bgmCoder

1
এটির জন্য jQuery ব্যবহার করা উপযুক্ত তা নিশ্চিত নয়।
কোয়ান্টিন 2

88

আমি সবসময় এটিকে এক লাইনের মতো করে আছি এখন প্যারামগুলির ভার রয়েছে:

params={};location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){params[k]=v})

বহু-রেখাযুক্ত:

var params={};
window.location.search
  .replace(/[?&]+([^=&]+)=([^&]*)/gi, function(str,key,value) {
    params[key] = value;
  }
);

একটি ফাংশন হিসাবে

function getSearchParams(k){
 var p={};
 location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v})
 return k?p[k]:p;
}

যা আপনি হিসাবে ব্যবহার করতে পারেন:

getSearchParams()  //returns {key1:val1, key2:val2}

অথবা

getSearchParams("key1")  //returns val1

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

4
@ ব্রাইস এটি আসলে অনুসন্ধানের স্ট্রিংটি পরিবর্তন করে না। .replace আসলে একটি নতুন স্ট্রিং দেয় এবং ফিরে আসা স্ট্রিংগুলি প্যারাম অবজেক্টে প্রক্রিয়া করা হয়।
জাগ্রত হয়েছে

দুর্দান্ত, সংক্ষিপ্ত এবং স্বীকৃত সমাধানের বিপরীতে, প্রতিটি বার যখন আপনার কোনও মান প্রয়োজন হয় তখন url পুনর্বার করা প্রয়োজন। replace(/[?&;]+([^=]+)=([^&;]*)/gi"পুনর্নির্মাণের সাথে কিছুটা উন্নতি করা যেতে পারে ;" বিভাজক হিসাবে চরিত্রও।
লে ড্রয়েড

পরিষ্কার এবং বেদনাদায়ক ওয়ান-লাইনার, আমার কাছে গৃহীত উত্তরের চেয়ে ভাল, কোনও অতিরিক্ত লিবস না।
স্যাম

জিইটি-কোয়েরি ডিলিমিটারের পরিবর্তে হ্যাশগুলি ব্যবহার করা হলে এটিই ব্যবহার করবে (প্রশ্নোত্তর): var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;}); এটি অ্যাজ্যাক্সের মতো কাজের জন্য কার্যকর যেখানে উইন্ডোতে হ্যাশ অ্যাজাক্স-অনুরোধগুলির সাথে আপডেট করা হয় তবে ইউরিতে যাওয়ার জন্য একজনকে একজন একটি হ্যাশযুক্ত
টমমি

48

তবুও অন্য একটি বিকল্প কাজ ...

function param(name) {
    return (location.search.split(name + '=')[1] || '').split('&')[0];
}

নামের একটি স্ট্রিং হওয়া দরকার। একটি যাদুমন্ত্র ~ মতো কাজ
mintedsky

2
এটি আমার প্রিয়। +1 লক্ষণীয় যদিও এটি অনুসন্ধানের "শেষ হয়" is উদাহরণস্বরূপ, আপনি যদি নামটির জন্য "ফোন" পাস করেন এবং "হোমফোন" নামে একটি ক্ষেত্রও রয়েছে তবে এটি url এ প্রথমে যদি ভুলটির মান ফিরে আসতে পারে।
efreed

2
এটা ভুল! উদাহরণস্বরূপ param('t') == param('sent') == 'yes'ওপি উদাহরণ। এখানে একটি ফিক্স আছে: return (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]; এছাড়াও মনে রাখবেন যে প্যারামটি বিদ্যমান নেই বলে আপনি বলতে পারবেন না কারণ আপনি অনুপস্থিত পরামিতিগুলির জন্য খালি স্ট্রিং পান।
অরিয়াদাম

খুব সাধারণ এবং মার্জিত। স্বপ্নের মতো কাজ করে। ধন্যবাদ.
অঞ্জনা সিলভা

// (কীটির কেবল শেষ অংশের পরিবর্তে সম্পূর্ণ কীটি বিদ্যমান থাকতে বাধ্য করা)return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
অ্যারন

45

অনেক দেরি হতে পারে। তবে এই পদ্ধতিটি খুব সহজ এবং সহজ

<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"
});

আপডেট
প্রয়োজন URL প্লাগইন: plugins.jquery.com/url
ধন্যবাদ -Ripounet


2
যে এ বিষয়ে সিদ্ধান্ত নেয় তার প্রথমে রেপো পরীক্ষা করা উচিত। ব্যবহারের পরিবর্তন হয়েছে। ur .url.attr ('ম্যাসেজ') $ .url ("ক্যোয়ারী") হয়ে যায় এবং এটি কেবল সম্পূর্ণ জিজ্ঞাসা দেয়! $ .Url ( "QUERY") স্প্লিট ( "=") [1]: শুধুমাত্র একটি প্যারামিটার আমি বাধ্য ছিলাম পেতে। URL GitHub লিংক
pseudozach

34

বা আপনি এই ঝরঝরে সামান্য ফাংশনটি ব্যবহার করতে পারেন কারণ কেন অতিরিক্ত জটিলগুলি সমাধান?

function getQueryParam(param, defaultValue = undefined) {
    location.search.substr(1)
        .split("&")
        .some(function(item) { // returns first occurence and stops
            return item.split("=")[0] == param && (defaultValue = item.split("=")[1], true)
        })
    return defaultValue
}

সরলীকৃত এবং অনিলিযুক্ত করার সময় যা আরও ভাল দেখায়:

tl; ডাঃ এক-লাইন সমাধান

var queryDict = {};
location.search.substr(1).split("&").forEach(function(item) {queryDict[item.split("=")[0]] = item.split("=")[1]})
ফলাফল:
কোয়েরিডিক্ট ['প্রেরিত'] // অপরিজ্ঞাত বা 'মান'

তবে আপনি যদি এনকোডযুক্ত অক্ষর বা মাল্টিভ্যালুড কীগুলি পেয়ে থাকেন ?

আপনি এই উত্তরটি আরও ভালভাবে দেখতে পারেন: আমি কীভাবে জাভাস্ক্রিপ্টে ক্যোরি স্ট্রিংয়ের মানগুলি পেতে পারি?

স্নিগ্ধ শিখর

"?a=1&b=2&c=3&d&e&a=5&a=t%20e%20x%20t&e=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dståle%26car%3Dsaab"
> queryDict
a: ["1", "5", "t e x t"]
b: ["2"]
c: ["3"]
d: [undefined]
e: [undefined, "http://w3schools.com/my test.asp?name=ståle&car=saab"]

> queryDict["a"][1] // "5"
> queryDict.a[1] // "5"

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

এটি সমাধান (প্রথমটি) যা ব্রাউজারগুলিতে আমার জন্য পুরোপুরি কাজ করেছিল - আপনাকে ধন্যবাদ!
নিকি দ্য রাঞ্চ

1
@ নিকি দ্য রাঞ্চটি শুনে দারুণ, ধন্যবাদ! যাইহোক, সচেতন থাকুন যে এটি একটি খুব সহজ সমাধান, যদি আপনি বিশেষ ইউরাল প্যারামগুলিতে বিশেষ অক্ষর ধারণ করে থাকেন তবে আপনি সরবরাহিত লিঙ্কটি আরও ভাল করে পরীক্ষা করুন।
কিওয়ার্টি

@ কিওয়ার্টি হ্যাঁ - আমার ব্যবহারের ক্ষেত্রটি খুব সহজ যেখানে প্যারামিটার সবসময় একই থাকে ইত্যাদি (মূলত ওপি যা চেয়েছিল তাই বলে) আবারও ধন্যবাদ!
নিকি দ্য রাঞ্চ

1
@ বার্নার্ডভান্ডারবেকেন আকর্ষণীয়, আমি এটি ঠিক করেছি, যাইহোক, এটি বরং খুব বোবা সমাধান the
কিওয়ার্টি

33

ব্যবহার URLSearchParams:

var params = new window.URLSearchParams(window.location.search);
console.log(params.get('name'));

সামঞ্জস্যতা সম্পর্কে সতর্কতা অবলম্বন করুন (বেশিরভাগ ক্ষেত্রে এটি ঠিক আছে তবে আইআই এবং এজগুলি ভিন্ন গল্প হতে পারে, সামঞ্জস্যপূর্ণ রেফারেন্সের জন্য এটি পরীক্ষা করুন: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )


বেশিরভাগ ব্রাউজার এটি ব্যবহার করতে পারে না।
saf21

ইউআরএল সার্চপ্যারামগুলি একটি বিশেষ স্থান "+" দিয়ে একটি স্থানের পরিবর্তে। সুতরাং যদি আপনার ইউআরএল পরম এর মধ্যে "+" থাকে তবে এটি প্রতিস্থাপন করা হবে।
গ্রোলার

11

এটি সহজ এবং আমার পক্ষে কাজ করেছেন

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    return results[1] || 0;
}

সুতরাং যদি আপনার url হয় তবে http://www.yoursite.com?city=4

এটা চেষ্টা কর

console.log($.urlParam('city'));

10

সম্ভবত আপনি ডেন্টিস্ট জেএসকে একটি চেহারা দিতে চান ? (অস্বীকৃতি: আমি কোডটি লিখেছি)

কোড:

document.URL == "http://helloworld.com/quotes?id=1337&author=kelvin&message=hello"
var currentURL = document.URL;
var params = currentURL.extract();
console.log(params.id); // 1337
console.log(params.author) // "kelvin"
console.log(params.message) // "hello"

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

সংক্ষিপ্ত সংস্করণ <1 কেবি


5

আমি আশা করি এটি সাহায্য করবে

 <script type="text/javascript">
   function getParameters() {
     var searchString = window.location.search.substring(1),
       params = searchString.split("&"),
       hash = {};

     if (searchString == "") return {};
     for (var i = 0; i < params.length; i++) {
       var val = params[i].split("=");
       hash[unescape(val[0])] = unescape(val[1]);
     }

     return hash;
   }

    $(window).load(function() {
      var param = getParameters();
      if (typeof param.sent !== "undefined") {
        // Do something.
      }
    });
</script>

5

function GetRequestParam(param)
{
	var res = null;
	try{
		var qs = decodeURIComponent(window.location.search.substring(1));//get everything after then '?' in URI
		var ar = qs.split('&');
		$.each(ar, function(a, b){
			var kv = b.split('=');
			if(param === kv[0]){
				res = kv[1];
				return false;//break loop
			}
		});
	}catch(e){}
	return res;
}


4

এই কাজের ডেমো ব্যবহার করে দেখুন http://jsfiddle.net/xy7cX/

এপিআই:

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

কোড

var url = "http://myurl.com?sent=yes"

var pieces = url.split("?");
alert(pieces[1] + " ===== " + $.inArray("sent=yes", pieces));

3
শুধুমাত্র একটি একক ভেরির জন্য কাজ করে - এটি ফেলে দেবে - রেজেক্সের সাহায্যে বাড়ানো যেতে পারে
অ্যালভিন

3

এই দুর্দান্ত গ্রন্থাগারটি রয়েছে: https://github.com/allmarkedup/purl

যা আপনাকে সহজভাবে করার অনুমতি দেয়

url = 'http://example.com?sent=yes';
sent = $.url(url).param('sent');
if (typeof sent != 'undefined') { // sent exists
   if (sent == 'yes') { // sent is equal to yes
     // ...
   }
}

উদাহরণটি ধরে নেওয়া হচ্ছে আপনি jQuery ব্যবহার করছেন। আপনি এটি সরল জাভাস্ক্রিপ্ট হিসাবেও ব্যবহার করতে পারেন, সিনট্যাক্সটি তখন অন্যরকম হবে।


1
এই গ্রন্থাগারটি আর রক্ষণাবেক্ষণ করা হয় না, তবে আমি এটি ব্যবহার করি এবং এটি দুর্দান্ত। লেখকরা যেমন তাদের উদাহরণটিতে অন্তর্ভুক্ত করেছেন আপনি নিশ্চিত হয়ে নিন যে এই প্রশ্নগুলির স্ট্রিং প্যারামিটারগুলি পেতে আপনি প্যারাম নন অ্যাটর ব্যবহার করেছেন।
অ্যাকশন ড্যান

3

এটি ওভারকিল হতে পারে, তবে ইউআরআই পার্স করার জন্য একটি দুর্দান্ত জনপ্রিয় লাইব্রেরি রয়েছে যা বলা হয় ইউআরআই.এস রয়েছে

উদাহরণ

var uri = "http://example.org/foo.html?technology=jquery&technology=css&blog=stackoverflow";
var components = URI.parse(uri);
var query = URI.parseQuery(components['query']);
document.getElementById("result").innerHTML = "URI = " + uri;
document.getElementById("result").innerHTML += "<br>technology = " + query['technology'];

// If you look in your console, you will see that this library generates a JS array for multi-valued queries!
console.log(query['technology']);
console.log(query['blog']);
<script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.17.0/URI.min.js"></script>

<span id="result"></span>


3

এত সহজ আপনি যে কোনও ইউআরএল ব্যবহার করতে পারেন এবং মান পেতে পারেন

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

ব্যবহারের উদাহরণ

// query string: ?first=value1&second=&value2
var foo = getParameterByName('first'); // "value1"
var bar = getParameterByName('second'); // "value2" 

দ্রষ্টব্য: যদি কোনও প্যারামিটার বেশ কয়েকবার উপস্থিত থাকে (? প্রথম = মান 1 এবং দ্বিতীয় = মান 2), আপনি প্রথম মান (মান 1) এবং দ্বিতীয় মান (মান 2) হিসাবে পাবেন।


2

এটি আপনাকে কাজ করার জন্য একটি দুর্দান্ত অবজেক্ট দেবে

    function queryParameters () {
        var result = {};

        var params = window.location.search.split(/\?|\&/);

        params.forEach( function(it) {
            if (it) {
                var param = it.split("=");
                result[param[0]] = param[1];
            }
        });

        return result;
    }

এবং তারপর;

    if (queryParameters().sent === 'yes') { .....

বিভক্ত (/ \? | \ & /) এর অর্থ
সেলভা গণপতি

2

এটি গাজরিসের উত্তরের উপর ভিত্তি করে , তবে ইউআরএল প্যারামিটারগুলি ডিকোড করে যাতে তারা যখন সংখ্যা এবং বর্ণ ছাড়া অন্য ডেটা ধারণ করে তখন সেগুলি ব্যবহার করা যেতে পারে:

function urlParam(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    // Need to decode the URL parameters, including putting in a fix for the plus sign
    // https://stackoverflow.com/a/24417399
    return results ? decodeURIComponent(results[1].replace(/\+/g, '%20')) : null;
}

2

ইউআরআই.জেস লাইব্রেরি ব্যবহারের সাথে আরও একটি উদাহরণ রয়েছে ।

উদাহরণ যেমন জিজ্ঞাসা করা ঠিক তেমন প্রশ্নের উত্তর।

var url = 'http://example.com?sent=yes';
var urlParams = new URI(url).search(true);
// 1. Does sent exist?
var sendExists = urlParams.sent !== undefined;
// 2. Is it equal to "yes"?
var sendIsEqualtToYes = urlParams.sent == 'yes';

// output results in readable form
// not required for production
if (sendExists) {
  console.log('Url has "sent" param, its value is "' + urlParams.sent + '"');
  if (urlParams.sent == 'yes') {
    console.log('"Sent" param is equal to "yes"');
  } else {
    console.log('"Sent" param is not equal to "yes"');
  }
} else {
  console.log('Url hasn\'t "sent" param');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.18.2/URI.min.js"></script>


2
http://example.com?sent=yes

এখানে সেরা সমাধান ।

function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.href);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, '    '));
};

উপরের ফাংশনটির সাহায্যে আপনি পৃথক প্যারামিটারের মানগুলি পেতে পারেন:

getUrlParameter('sent');

নিখুঁত উত্তর!
শ্রীজানি ঘোষ

1

সমীরের উত্তরের কফিসক্রিপ্ট সংস্করণ

getUrlParameter = (sParam) ->
  sPageURL = window.location.search.substring(1)
  sURLVariables = sPageURL.split('&')
  i = 0
  while i < sURLVariables.length
    sParameterName = sURLVariables[i].split('=')
    if sParameterName[0] == sParam
      return sParameterName[1]
    i++

1

সমীরের উত্তরে সামান্য উন্নতি, প্রতিটি বার কল করে সমস্ত পরামিতি পার্সিং এবং লুপিং এড়াতে ক্যাশে প্যারামগুলি বন্ধ করে দেওয়া

var getURLParam = (function() {
    var paramStr = decodeURIComponent(window.location.search).substring(1);
    var paramSegs = paramStr.split('&');
    var params = [];
    for(var i = 0; i < paramSegs.length; i++) {
        var paramSeg = paramSegs[i].split('=');
        params[paramSeg[0]] = paramSeg[1];
    }
    console.log(params);
    return function(key) {
        return params[key];
    }
})();


1

ভ্যানিলা জাভাস্ক্রিপ্টের সাহায্যে আপনি সহজেই প্যারামগুলি (লোকেশন.সার্চ) নিতে পারেন, স্ট্রিংগুলি (? ছাড়া) পেয়ে এবং এটিকে 'এবং' দ্বারা বিভক্ত করে এটিকে অ্যারেতে পরিণত করতে পারেন।

আপনি urlParams মাধ্যমে পুনরাবৃত্তি হিসাবে, আপনি তারপরে আবার স্ট্রিংটি '=' দিয়ে বিভক্ত করতে পারেন এবং এটি 'params' অবজেক্টে অবজেক্ট [elmement [0]] = উপাদান [1] হিসাবে যুক্ত করতে পারেন। অসাধারণ সহজ এবং অ্যাক্সেস করা সহজ।

http://www.website.com/?error=userError&type=handwritten

            var urlParams = location.search.substring(1).split('&'),
                params = {};

            urlParams.forEach(function(el){
                var tmpArr = el.split('=');
                params[tmpArr[0]] = tmpArr[1];
            });


            var error = params['error'];
            var type = params['type'];

1

ফাইলের নাম = "পি ও জি এইচটিএমটিএল" এবং ইউআইডি = 66 এর মতো URL প্যারামিটারে & তে থাকলে কী হয়

এই ক্ষেত্রে 1 ম ফাংশনটি সঠিকভাবে কাজ করবে না। তাই আমি কোডটি সংশোধন করেছি

function getUrlParameter(sParam) {
    var sURLVariables = window.location.search.substring(1).split('&'), sParameterName, i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
}

1

স্বীকারোক্তিপূর্ণভাবে আমি একটি উত্তর-উত্তর প্রশ্নের উত্তরটি যুক্ত করছি, তবে এর সুবিধাগুলি রয়েছে:

- jQuery সহ বাইরের কোনও গ্রন্থাগারের উপর নির্ভর করে না

- 'স্ট্রিং' বাড়িয়ে বিশ্বব্যাপী ফাংশন নেমস্পেসকে দূষিত করছে না

- কোনও বৈশ্বিক ডেটা তৈরি করা হয়নি এবং ম্যাচের সন্ধান পাওয়ার পরে অপ্রয়োজনীয় প্রক্রিয়াজাতকরণ করা হচ্ছে

- এনকোডিং সংক্রান্ত সমস্যাগুলি পরিচালনা করা এবং নন-এনকোড হওয়া প্যারামিটারের নামটি গ্রহণ করা (ধরে নেওয়া)

- স্পষ্ট forলুপ এড়ানো

String.prototype.urlParamValue = function() {
    var desiredVal = null;
    var paramName = this.valueOf();
    window.location.search.substring(1).split('&').some(function(currentValue, _, _) {
        var nameVal = currentValue.split('=');
        if ( decodeURIComponent(nameVal[0]) === paramName ) {
            desiredVal = decodeURIComponent(nameVal[1]);
            return true;
        }
        return false;
    });
    return desiredVal;
};

তারপরে আপনি এটি ব্যবহার করবেন:

var paramVal = "paramName".urlParamValue() // null if no match

1

আপনি যদি একটি নির্দিষ্ট ইউআরএল থেকে একটি নির্দিষ্ট পরামিতি সন্ধান করতে চান:

function findParam(url, param){
  var check = "" + param;
  if(url.search(check )>=0){
      return url.substring(url.search(check )).split('&')[0].split('=')[1];
  }
}  

var url = "http://www.yourdomain.com/example?id=1&order_no=114&invoice_no=254";  
alert(findParam(url,"order_no"));

0

আর একটি সমাধান যা jQuery এবং JSON ব্যবহার করে, তাই আপনি কোনও বস্তুর মাধ্যমে প্যারামিটার মানগুলিতে অ্যাক্সেস করতে পারেন।

var loc = window.location.href;
var param = {};
if(loc.indexOf('?') > -1)
{
    var params = loc.substr(loc.indexOf('?')+1, loc.length).split("&");

    var stringJson = "{";
    for(var i=0;i<params.length;i++)
    {
        var propVal = params[i].split("=");
        var paramName = propVal[0];
        var value = propVal[1];
        stringJson += "\""+paramName+"\": \""+value+"\"";
        if(i != params.length-1) stringJson += ",";
    }
    stringJson += "}";
    // parse string with jQuery parseJSON
    param = $.parseJSON(stringJson);
}

ধরে নিচ্ছি আপনার ইউআরএল হয় http://example.com/?search=hello+world&language=en&page=3

এর পরে এটি কেবল এই জাতীয় পরামিতি ব্যবহার করার বিষয়:

param.language

ফিরে

en

এর সর্বাধিক দরকারী ব্যবহার হচ্ছে এটি পৃষ্ঠা লোডে চালানো এবং প্যারামিটারগুলির যে কোনও জায়গাতে আপনার প্রয়োজন হতে পারে ব্যবহার করার জন্য একটি বৈশ্বিক পরিবর্তনশীল ব্যবহার করা make

যদি আপনার প্যারামিটারে সংখ্যাসূচক মান থাকে তবে কেবলমাত্র মানটিকে পার্স করুন।

parseInt(param.page)

কোনও প্যারামিটার না থাকলে paramকেবল একটি খালি অবজেক্ট হবে।



-1

এটা ব্যবহার কর

$.urlParam = function(name) {
  var results = new RegExp('[\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
  return results[1] || 0;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.