الانتقال إلى المحتوى الرئيسي
الوحدة 7 · الدرس 3 من 427/32 في الدورة~12 min
دروس الوحدة (3/4)

استبدال مع رد الاتصال

إذا كانت السلسلة البديلة غير كافية، قم بتمرير وظيفة: محمي_INLINE_0. يتم استدعاء رد الاتصال لكل مباراة وقيمتها المرتجعة تصبح الاستبدال.

JS
'prezzi: 10 20 30'.replace(/\d+/g, (m) => Number(m) * 1.22);
// "prezzi: 12.2 24.4 36.6" (22% VAT)

وسيطات رد الاتصال

JS
str.replace(regex, (match, p1, p2, ..., offset, original, groups) => ...);
  • match -- المباراة بأكملها.
  • p1، p2، \u2026 -- المجموعات الملتقطة بالترتيب.
  • offset -- فهرس المطابقة في السلسلة الأصلية.
  • original -- السلسلة بأكملها.
  • groups -- الكائن الذي يحتوي على المجموعات المسماة (إن وجدت).
JS
'2024-03-15'.replace(/(\d{4})-(\d{2})-(\d{2})/, (_, a, m, g) => `${g}/${m}/${a}`);
// "15/03/2024"

يمنحك رد الاتصال قوة تعسفية: التحليل والبحث والتحويل وHTML الهروب من كل شيء لا تستطيع السلسلة الثابتة فعله.

الوسائط المتقدمة في استبدال عمليات الاسترجاعات

تتلقى وظيفة رد الاتصال عدة وسائط: المطابقة الكاملة، وكل مجموعة تم التقاطها، وإزاحة المطابقة داخل النص بأكمله، وسلسلة الإدخال الأصلية. وهذا يتيح منطق التحويل المتطور القائم على السياق.

جربه

تمرين#regex.m7.l3.e1
المحاولات: 0جارٍ التحميل…

ابحث عن كل عدد صحيح في النص. (في الاستبدال، يمكنك تمرير `(m) => Number(m) * 2` لمضاعفته.)

جارٍ تحميل المحرر…
إظهار التلميح

استخدم \\d+ (رقم واحد أو أكثر) لالتقاط كل عدد صحيح كتطابق واحد.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#regex.m7.l3.e2
المحاولات: 0جارٍ التحميل…

ابحث عن كل بريد إلكتروني (نموذج مبسط: أحرف/أرقام/نقاط/شرطات سفلية @ المجال). بهذه الطريقة يمكن أن يؤدي رد الاتصال إلى `***@domain`.

جارٍ تحميل المحرر…
إظهار التلميح

قم بتوسيع الفصل إلى [\\w.]+ لقبول النقاط في اسم المستخدم والمجال.

الحل متاح بعد 3 من المحاولات

التحدي الإضافي

تمرين#regex.m7.l3.e3
المحاولات: 0جارٍ التحميل…

Match every word consisting of letters in the text, so it can be transformed to uppercase via a callback.

جارٍ تحميل المحرر…
إظهار التلميح

ابحث عن الحروف البسيطة باستخدام [a-zA-Z]+.

الحل متاح بعد 3 من المحاولات