আমি প্রচুর jQuery উদাহরণ দেখেছি যেখানে প্যারামিটারের আকার এবং নাম অজানা।
আমার ইউআরএলটিতে কেবল 1 টি স্ট্রিং থাকবে:
http://example.com?sent=yes
আমি কেবল সনাক্ত করতে চাই:
- না
sent
রয়েছে? - এটি কি "হ্যাঁ" সমান?
আমি প্রচুর jQuery উদাহরণ দেখেছি যেখানে প্যারামিটারের আকার এবং নাম অজানা।
আমার ইউআরএলটিতে কেবল 1 টি স্ট্রিং থাকবে:
http://example.com?sent=yes
আমি কেবল সনাক্ত করতে চাই:
sent
রয়েছে?উত্তর:
এখানে সেরা সমাধান ।
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');
false
বা null
খালি সন্ধানের জন্য ফিরে আসুন
&
বা =
প্যারামিটার মান আছে তবে এটি সঠিকভাবে কাজ করবে না ।
2020 থেকে সমাধান
আমাদের রয়েছে: http://example.com?sent= চোখ
let searchParams = new URLSearchParams(window.location.search)
পাঠানো কি বিদ্যমান ?
searchParams.has('sent') // true
এটি কি "হ্যাঁ" সমান ?
let param = searchParams.get('sent')
এবং তারপরে এটি কেবল তুলনা করুন।
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
এখানে দেখুন
ইউআরএলকে প্যারামিটার হিসাবে সঞ্চিত ডায়নামিক ভেরিয়েবলগুলি পেতে 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
return results[1] || 0;
হওয়া উচিতreturn decodeURI(results[1]) || 0;
|| 0
জন্য ইতিমধ্যে একটি চেক রয়েছে বলে কেন এটির অংশটি প্রয়োজন , এটি কি সবসময় ম্যাচের অ্যারেটি ফেরত দেবে না?
আমি সবসময় এটিকে এক লাইনের মতো করে আছি এখন প্যারামগুলির ভার রয়েছে:
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
replace(/[?&;]+([^=]+)=([^&;]*)/gi
"পুনর্নির্মাণের সাথে কিছুটা উন্নতি করা যেতে পারে ;" বিভাজক হিসাবে চরিত্রও।
var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
এটি অ্যাজ্যাক্সের মতো কাজের জন্য কার্যকর যেখানে উইন্ডোতে হ্যাশ অ্যাজাক্স-অনুরোধগুলির সাথে আপডেট করা হয় তবে ইউরিতে যাওয়ার জন্য একজনকে একজন একটি হ্যাশযুক্ত
তবুও অন্য একটি বিকল্প কাজ ...
function param(name) {
return (location.search.split(name + '=')[1] || '').split('&')[0];
}
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];
অনেক দেরি হতে পারে। তবে এই পদ্ধতিটি খুব সহজ এবং সহজ
<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
বা আপনি এই ঝরঝরে সামান্য ফাংশনটি ব্যবহার করতে পারেন কারণ কেন অতিরিক্ত জটিলগুলি সমাধান?
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
}
সরলীকৃত এবং অনিলিযুক্ত করার সময় যা আরও ভাল দেখায়:
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"
ব্যবহার URLSearchParams
:
var params = new window.URLSearchParams(window.location.search);
console.log(params.get('name'));
সামঞ্জস্যতা সম্পর্কে সতর্কতা অবলম্বন করুন (বেশিরভাগ ক্ষেত্রে এটি ঠিক আছে তবে আইআই এবং এজগুলি ভিন্ন গল্প হতে পারে, সামঞ্জস্যপূর্ণ রেফারেন্সের জন্য এটি পরীক্ষা করুন: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )
এটি সহজ এবং আমার পক্ষে কাজ করেছেন
$.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'));
সম্ভবত আপনি ডেন্টিস্ট জেএসকে একটি চেহারা দিতে চান ? (অস্বীকৃতি: আমি কোডটি লিখেছি)
কোড:
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 কেবি
আমি আশা করি এটি সাহায্য করবে
<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>
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;
}
এই কাজের ডেমো ব্যবহার করে দেখুন http://jsfiddle.net/xy7cX/
এপিআই:
এটি সাহায্য করা উচিত :)
কোড
var url = "http://myurl.com?sent=yes"
var pieces = url.split("?");
alert(pieces[1] + " ===== " + $.inArray("sent=yes", pieces));
এই দুর্দান্ত গ্রন্থাগারটি রয়েছে: 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 ব্যবহার করছেন। আপনি এটি সরল জাভাস্ক্রিপ্ট হিসাবেও ব্যবহার করতে পারেন, সিনট্যাক্সটি তখন অন্যরকম হবে।
এটি ওভারকিল হতে পারে, তবে ইউআরআই পার্স করার জন্য একটি দুর্দান্ত জনপ্রিয় লাইব্রেরি রয়েছে যা বলা হয় ইউআরআই.এস রয়েছে ।
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>
এত সহজ আপনি যে কোনও ইউআরএল ব্যবহার করতে পারেন এবং মান পেতে পারেন
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) হিসাবে পাবেন।
এটি আপনাকে কাজ করার জন্য একটি দুর্দান্ত অবজেক্ট দেবে
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') { .....
এটি গাজরিসের উত্তরের উপর ভিত্তি করে , তবে ইউআরএল প্যারামিটারগুলি ডিকোড করে যাতে তারা যখন সংখ্যা এবং বর্ণ ছাড়া অন্য ডেটা ধারণ করে তখন সেগুলি ব্যবহার করা যেতে পারে:
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;
}
ইউআরআই.জেস লাইব্রেরি ব্যবহারের সাথে আরও একটি উদাহরণ রয়েছে ।
উদাহরণ যেমন জিজ্ঞাসা করা ঠিক তেমন প্রশ্নের উত্তর।
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>
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');
সমীরের উত্তরের কফিসক্রিপ্ট সংস্করণ
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++
সমীরের উত্তরে সামান্য উন্নতি, প্রতিটি বার কল করে সমস্ত পরামিতি পার্সিং এবং লুপিং এড়াতে ক্যাশে প্যারামগুলি বন্ধ করে দেওয়া
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];
}
})();
আমি এটি ব্যবহার করি এবং এটি কাজ করে। http://codesheet.org/codesheet/NF246Tzs
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
var first = getUrlVars()["id"];
ভ্যানিলা জাভাস্ক্রিপ্টের সাহায্যে আপনি সহজেই প্যারামগুলি (লোকেশন.সার্চ) নিতে পারেন, স্ট্রিংগুলি (? ছাড়া) পেয়ে এবং এটিকে 'এবং' দ্বারা বিভক্ত করে এটিকে অ্যারেতে পরিণত করতে পারেন।
আপনি 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'];
ফাইলের নাম = "পি ও জি এইচটিএমটিএল" এবং ইউআইডি = 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]);
}
}
}
স্বীকারোক্তিপূর্ণভাবে আমি একটি উত্তর-উত্তর প্রশ্নের উত্তরটি যুক্ত করছি, তবে এর সুবিধাগুলি রয়েছে:
- 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
আপনি যদি একটি নির্দিষ্ট ইউআরএল থেকে একটি নির্দিষ্ট পরামিতি সন্ধান করতে চান:
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"));
আর একটি সমাধান যা 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
কেবল একটি খালি অবজেক্ট হবে।
$.urlParam = function(name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}