المجموعات والالتقاط والاستبدال
التقطوا أجزاء النص باستخدام المجموعات، واستخدموا المجموعات المسماة، وكرّروا جميع التطابقات، ونفّذوا استبدالات آمنة باستخدام backreferences أو دالة
المجموعات والالتقاط والاستبدال درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
لماذا نستخدم المجموعات؟
الهدف: استخراج النص وإعادة تشكيله.
- مجموعات الالتقاط: (...)
- المجموعات المسماة: (?<name>...)
- استخدام matchAll للتكرار على جميع النتائج
- استخدام replace مع $1 أو دالة

المجموعات المرقّمة
استخدم (...) لالتقاط الأجزاء. ويمكنك الوصول إليها حسب الفهرس: m[1]، m[2]، ...
// Capture YYYY-MM-DD into groups
const r = /(\\d{4})-(\\d{2})-(\\d{2})/;
const m = r.exec("Today: 2025-09-26");
if (m) {
console.log("year:", m[1], "month:", m[2], "day:", m[3]);
} else {
console.log("no match");
}

المجموعات المسماة
تضيف المجموعات المسماة مفاتيح واضحة يمكن الوصول إليها عبر m.groups.name.
// Named groups make code clearer
const rx = /(?<y>\\d{4})-(?<m>\\d{2})-(?<d>\\d{2})/;
const hit = rx.exec("Release 2024-01-05");
if (hit) {
console.log("y:", hit.groups.y, "m:", hit.groups.m, "d:", hit.groups.d);
}

التكرار على التطابقات
يعيد matchAll مكرّرًا؛ استخدمه مع g للتكرار على كل تطابق وقراءة المجموعات.
// matchAll with the g flag to get every match and groups
const text = "IDs: A-12, B-7, C-300";
const pattern = /([A-Z])-(\\d+)/g;
for (const match of text.matchAll(pattern)) {
console.log("letter:", match[1], "num:", match[2]);
}

الاستبدال باستخدام المجموعات
يمكن أن يستخدم replace القيمة $1 أو $2 أو callback لبناء النص الجديد.
// Replace order: "2025-09-26" -> "26/09/2025"
const date = "2025-09-26";
// With backreferences
const swapped1 = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, "$3/$2/$1");
console.log("swap1:", swapped1);
// With a function for more control
const swapped2 = date.replace(/(?<y>\\d{4})-(?<m>\\d{2})-(?<d>\\d{2})/, function (_all, _y, _m, _d, groups) {
return groups.d + "/" + groups.m + "/" + groups.y;
});
console.log("swap2:", swapped2);

نصائح ومزالق
نصائح:
- أضف g عندما تحتاج إلى جميع التطابقات، واستخدم matchAll.
- فضّل المجموعات المسماة من أجل الوضوح.
- أبقِ الأنماط صغيرة، واختبرها على سلاسل نموذجية قصيرة.

اختبار أساسيات matchAll
تحقّق سريع: التكرار على جميع التطابقات باستخدام المجموعات.

مراجعة
مراجعة: التقط باستخدام (...)، واستخدم المجموعات المسماة للوضوح، وكرّر على جميع التطابقات عبر matchAll، وأعد تشكيل النص باستخدام replace مع المراجع الخلفية أو دالة callback.

الأسئلة الشائعة
هل درس «المجموعات والالتقاط والاستبدال» مجاني؟
نعم — نص درس «المجموعات والالتقاط والاستبدال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «المجموعات والالتقاط والاستبدال»؟
التقطوا أجزاء النص باستخدام المجموعات، واستخدموا المجموعات المسماة، وكرّروا جميع التطابقات، ونفّذوا استبدالات آمنة باستخدام backreferences أو دالة تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.
كم من الوقت يستغرق درس «المجموعات والالتقاط والاستبدال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات Regex — القيم الحرفية وtest والمراسي والأعلام
- المجموعات والالتقاط والاستبدال
- التحقق والمطبات الصغيرة