Skip to content

getAllQueryString

همهٔ پارامترهای پرس‌وجو را از یک نشانی بیرون می‌کشد و به شیء تبدیل می‌کند.

API

getAllQueryString

بازگشت

آرگومانتوضیحنوع
Objectشیء پارامترهای پرس‌وجوRecord<string, string>

پارامترها

پارامترتوضیحنوعپیش‌فرض
urlنشانی‌ای که تجزیه می‌شود (اختیاری؛ پیش‌فرض نشانی صفحهٔ کنونی)stringاختیاری

نمونه

کاربرد پایه

js
import { getAllQueryString } from 'ranuts';

// فرض کنید نشانی کنونی https://example.com?name=John&age=30 است
const params = getAllQueryString();
console.log(params); // { name: 'John', age: '30' }

تجزیهٔ نشانی مشخص

js
import { getAllQueryString } from 'ranuts';

const url = 'https://example.com?page=1&limit=10&sort=name';
const params = getAllQueryString(url);
console.log(params); // { page: '1', limit: '10', sort: 'name' }

خواندن یک پارامتر مشخص

js
import { getAllQueryString } from 'ranuts';

const params = getAllQueryString();
const page = params.page || '1';
const limit = params.limit || '10';
console.log(`صفحه: ${page}، شمار: ${limit}`);

پارامترهای کدگذاری‌شده

js
import { getAllQueryString } from 'ranuts';

// URL: https://example.com?search=hello%20world
const params = getAllQueryString();
console.log(params.search); // 'hello world' (خودبه‌خود رمزگشایی شد)

یادداشت‌ها

  1. پرچمِ بی‌مقدار جایش را نگه می‌دارد. ?embed و ?embed= هر دو { embed: '' } می‌دهند. پیش از ۰٫۳ هر پارامتر بی‌مقدار کنار گذاشته می‌شد و همین باعث می‌شد ?readonly و ?embed — که شیوهٔ معمول نوشتن پرچم بولی‌اند — از نبودِ پارامتر بازشناختنی نباشند. چنین پرچمی را با queryFlag بخوانید.

  2. قطعه هرگز به مقدار آخر نشت نمی‌کند. ?lang=en#section مقدار { lang: 'en' } می‌دهد.

  3. تنها نخستین = جدا می‌کند، پس مقدار می‌تواند خودش یکی داشته باشد: ?next=/a?b=1 مقدار { next: '/a?b=1' } می‌دهد.

  4. رمزگشایی نشانی: کلیدها و مقدارها درصدرمزگشایی می‌شوند و + به فاصله بدل می‌گردد، درست مانند URLSearchParams. گریزِ خراب مانند %zz عیناً نگه داشته می‌شود و پارامتر کنار گذاشته نمی‌شود، تا یک مقدار بد بقیه را پنهان نکند.

  5. محیط سرور: وقتی نه window هست و نه url داده شده، {} برمی‌گردد. برای کاربرد در اسکریپت زمان ساخت، نشانی بدهید.

  6. نشانی پیش‌فرض: بدون url، از window.location.href استفاده می‌شود.

  7. پارامترهای تکراری: تنها آخرین مقدار نگه داشته می‌شود.

منتشرشده تحت مجوز MIT.