انتقل إلى المحتوى

URL

تحليل ⁦URL⁩ ومكوّناته ومعاملات البحث الحيّة.

في هذه الصفحة
const url = new URL("https://user:pw@example.com:8080/a?x=1#frag");
url.host;     // "example.com:8080"
url.pathname; // "/a"
url.origin;   // "https://example.com:8080"

يرمي ⁦new URL(input, base?)⁩ الخطأ ⁦TypeError⁩ عند فشل التحليل. أما ⁦URL.parse(input, base?)⁩ فيعيد ⁦null⁩ بدلًا من ذلك، و يعيد ⁦URL.canParse(input, base?)⁩ قيمة منطقية.

المكوّنات

المكوّنات القابلة للتغيير هي ⁦href⁩ و⁦protocol⁩ و⁦username⁩ و⁦password⁩ و⁦host⁩ و⁦hostname⁩ و⁦port⁩ و⁦pathname⁩ و⁦search⁩ و⁦hash⁩. أما ⁦origin⁩ و⁦searchParams⁩ فسمتان للقراءة فقط.

تُطبَّع أسماء المضيفين وفق ⁦IDNA⁩ وتحتفظ قيم ⁦IPv6⁩ الحرفية بالأقواس المربعة.

new URL("https://日本.jp/").hostname; // "xn--wgv71a.jp"
new URL("http://[::1]:9000/").host;  // "[::1]:9000"

تُتجاهل معظم عمليات الإسناد غير الصالحة للمكوّنات. أما إسناد قيمة غير صالحة إلى ⁦href⁩ فيرمي ⁦TypeError⁩. وتُسلسل المنافذ الافتراضية كقيمة ⁦port⁩ فارغة.

معاملات البحث الحيّة

const url = new URL("https://example.com/?a=1");
const params = url.searchParams;

params.append("b", "2");
url.href; // "https://example.com/?a=1&b=2"

url.search = "?c=3";
params.toString(); // "c=3"

يُعاد كائن ⁦URLSearchParams⁩ نفسه في كل وصول.

انظر أيضًا

Reference

Status: Full · 8,682 of 9,046 suite tests pass (96.0%) · since 1.1.0

Exports

ExportKindStatusNotes
URLclassFullURL.parse(), URL.canParse(), href, origin, protocol, username, password, host, hostname, port, pathname, search, searchParams, hash, toJSON()
URLSearchParamsclassFullsize, append(), delete(), get(), getAll(), has(), set(), sort(), iteration

Tests: wpt-wintertc url: 8,682 pass, 364 fail, 0 error, 2,251 skipped. Failing: url/toascii.window.js (298), url/IdnaTestV2.any.js (30), url/url-constructor.any.js (12), url/url-setters.any.js (12), url/urlsearchparams-constructor.any.js (6), url/urlencoded-parser.any.js (2), url/idlharness.any.js, url/url-origin.any.js, and 2 more.

هل كانت هذه الصفحة مفيدة؟