نحوه گرفتن مقادیر از پارامترهای GET در جاوااسکریپت
در زمان کار با URL ها که شامل پارامترهای GET هستند، ممکن است نیاز داشته باشید تا مقادیر آنها را استخراج کنید. به عنوان مثال، در URL زیر:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
شما باید مقدار کامل c
را به دست آورید، اما ممکن است با چالشهایی مواجه شوید.
برای دستیابی به پارامترها در جاوااسکریپت، میتوانید از شی URL
و متد URLSearchParams
استفاده کنید. این امکان به شما این اجازه را میدهد که به راحتی مقادیر را استخراج کنید. در اینجا یک نمونه کد برای دستیابی به مقدار c
آورده شده است:
var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5";
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c); // خروجی: m2-m3-m4-m5
اگر نیاز به کدی دارید که حتی بر روی مرورگرهای قدیمی (مانند Internet Explorer) کار کند، می توانید از یک polyfill استفاده کنید که قابلیتهای URL
و URLSearchParams
را تأمین کند.
در صورتی که به کدهای سادهتری نیاز دارید، میتوانید پارامترهای GET را از پراپتری search
آدرس بهدست آورده و آنها را تجزیه کنید. در کدی زیر، عملکرد جداسازی و بازگردانی مقادیر پارامترهای GET فراهم شده است:
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.shift());
var value = decodeURIComponent(pair.join("="));
query_string[key] = 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); // خروجی: m2-m3-m4-m5
حتما به این نکته توجه داشته باشید که گاهی اوقات مقادیر پارامترها انکد شده اند. به همین دلیل، برای جلوگیری از خطاهای احتمالی، از متد decodeURIComponent
استفاده کنید.