ما هو عنوان URL؟
أ عنوان URL هو اسم آخر ل عنوان صفحة انترنت . على سبيل المثال، عنوان URL المستند إلى الكلمات هو Javatpoint.com. أ عنوان URL يمكن أيضًا إنشاؤه باستخدام عنوان IP (على سبيل المثال. 192.168.2.24 ). يقدم معظم المستهلكين عنوان الاسم عند إجراء بحث عبر الإنترنت لأن تذكر الأسماء أسهل من تذكر الأرقام.
تستخدم متصفحات الويب عناوين URL لطلب خوادم الويب لصفحات معينة. وفيما يلي قائمة أ بناء جملة URL و شكل .
بناء الجملة
Scheme://prefix.domain:port/path/filename
حدود
مخطط-
يتم تحديد نوع خدمة الإنترنت (يتم استخدام http أو https بشكل عام).
بادئة-
يقوم بإنشاء بادئة المجال (www هو الافتراضي لـ http).
اِختِصاص-
يناقش اسم المجال على شبكة الإنترنت (على سبيل المثال. javatpoint.com ).
ميناء -
يحدد المنفذ على المضيف ( 80 هو الإعداد الافتراضي لـ http).
تحميل جافا سكريبت
طريق -
يقوم بإنشاء مسار على جانب الخادم.
اسم الملف -
فهو يحدد اسم المورد أو المستند.
الحصول على اسم المجال من أ عنوان URL في جافا سكريبت يمكن أن تكون مهمة مفيدة لأسباب مختلفة، مثل استخراج اسم النطاق لتحليلات الويب أو لأغراض أمنية. في هذه الإجابة، سنستكشف طرقًا مختلفة لاستخراج اسم النطاق من عنوان URL في جافا سكريبت، بالإضافة إلى إيجابياتها وسلبياتها.
1. استخدام كائن window.location
الطريقة الأكثر مباشرة للحصول على اسم المجال من عنوان URL في جافا سكريبت هي استخدام كائن window.location ، والذي يوفر معلومات حول عنوان URL الحالي. ال window.location.host الخاصية تعطينا اسم النطاق، بما في ذلك رقم المنفذ إذا كان موجودًا. هنا مثال:
Const domain = window.location.host;
يتميز هذا النهج بكونه بسيطًا وموثوقًا. ومع ذلك، فهو يعمل فقط مع عنوان URL الحالي، لذلك إذا كنت بحاجة إلى استخراج اسم النطاق من عنوان URL مختلف، فستحتاج إلى استخدام طريقة مختلفة.
2. استخدام منشئ URL
هناك طريقة أخرى لاستخراج اسم المجال من عنوان URL في جافا سكريبت وهي استخدام مُنشئ عنوان URL. إنه كائن جافا سكريبت مدمج يمكنه تحليل سلسلة URL وتوفير الوصول إلى مكوناته المختلفة. هنا مثال:
Consturl = new URL('https://www.example.com/path/to/file.html'); Const domain = url.hostname;
يتمتع مُنشئ عنوان URL بميزة القدرة على استخراج اسم النطاق من أي عنوان URL صالح، وليس فقط من العنوان الحالي. ومع ذلك، فهو متاح فقط في المتصفحات الحديثة، لذا ستحتاج إلى التحقق مما إذا كان مدعومًا قبل استخدامه.
3. استخدام التعابير العادية
تتمثل الطريقة الأكثر تقدمًا لاستخراج اسم المجال من عنوان URL في جافا سكريبت في استخدام التعبيرات العادية. تعد التعبيرات العادية أداة قوية لمطابقة الأنماط، ويمكننا استخدامها لاستخراج اسم النطاق من عنوان URL. هنا مثال:
Consturl = 'https://www.example.com/path/to/file.html'; Constdomain = url.match(/^(?:https?://)?(?:[^@ ]+@)?(?:www.)?([^:/ ]+)/im)[1];
يتطابق نمط التعبير العادي هذا مع اسم المجال في عنوان URL، متجاهلاً البروتوكول ( http أو https )، اسم المستخدم وكلمة المرور، والمسار. وهو يعمل من خلال البحث عن التواجد الأول لسلسلة من الأحرف التي لا تتضمن نقطتين أو شرطة مائلة أو سطر جديد، يسبقها بروتوكول اختياري واسم المستخدم وكلمة المرور واختياري 'شبكة الاتصالات العالمية.' بادئة. تقوم طريقة المطابقة بإرجاع مصفوفة تحتوي على المطابقة بأكملها وأي مجموعات تم التقاطها، لذلك نحتاج إلى استخراج العنصر الثاني (في الفهرس 1) للحصول على اسم المجال.
يتمتع هذا الأسلوب بميزة كونه مرنًا وقابلاً للتكيف مع تنسيقات عناوين URL المختلفة، ولكنه أيضًا أكثر تعقيدًا وعرضة للأخطاء إذا لم يكن نمط التعبير العادي دقيقًا بدرجة كافية.
4. استخدام DOM
أخيرًا، يمكننا أيضًا استخراج اسم المجال من عنوان URL في جافا سكريبت باستخدام ملف DOM . يمكننا إنشاء عنصر ربط مخفي وضبطه سمة href إلى عنوان URL الذي نريد استخراج اسم المجال منه، ثم قراءة خاصية اسم المضيف. هنا مثال:
Consturl = 'https://www.example.com/path/to/file.html'; Const a = document.createelement('a'); A.href = url; Const domain = a.hostname;
يتميز هذا النهج بكونه سهل الفهم والتنفيذ، ولكنه يخلق أيضًا عنصر DOM ، والتي قد يكون لها بعض الآثار المترتبة على الأداء إذا كنت بحاجة إلى القيام بذلك بشكل متكرر.
خاتمة
هناك طرق مختلفة لاستخراج اسم المجال من عنوان URL في جافا سكريبت، ويعتمد أفضل أسلوب على متطلباتك وقيودك. إذا كنت تحتاج فقط إلى استخراج اسم المجال من عنوان URL الحالي، فاستخدم ملف كائن window.location هي الطريقة الأبسط والأكثر موثوقية.