دروس الوحدة (3/4)
استبدال مع رد الاتصال
إذا كانت السلسلة البديلة غير كافية، قم بتمرير وظيفة: محمي_INLINE_0. يتم استدعاء رد الاتصال لكل مباراة وقيمتها المرتجعة تصبح الاستبدال.
'prezzi: 10 20 30'.replace(/\d+/g, (m) => Number(m) * 1.22);
// "prezzi: 12.2 24.4 36.6" (22% VAT)وسيطات رد الاتصال
str.replace(regex, (match, p1, p2, ..., offset, original, groups) => ...);match-- المباراة بأكملها.p1،p2، \u2026 -- المجموعات الملتقطة بالترتيب.offset-- فهرس المطابقة في السلسلة الأصلية.original-- السلسلة بأكملها.groups-- الكائن الذي يحتوي على المجموعات المسماة (إن وجدت).
'2024-03-15'.replace(/(\d{4})-(\d{2})-(\d{2})/, (_, a, m, g) => `${g}/${m}/${a}`);
// "15/03/2024"يمنحك رد الاتصال قوة تعسفية: التحليل والبحث والتحويل وHTML الهروب من كل شيء لا تستطيع السلسلة الثابتة فعله.
الوسائط المتقدمة في استبدال عمليات الاسترجاعات
تتلقى وظيفة رد الاتصال عدة وسائط: المطابقة الكاملة، وكل مجموعة تم التقاطها، وإزاحة المطابقة داخل النص بأكمله، وسلسلة الإدخال الأصلية. وهذا يتيح منطق التحويل المتطور القائم على السياق.
جربه
ابحث عن كل عدد صحيح في النص. (في الاستبدال، يمكنك تمرير `(m) => Number(m) * 2` لمضاعفته.)
إظهار التلميح
استخدم \\d+ (رقم واحد أو أكثر) لالتقاط كل عدد صحيح كتطابق واحد.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
ابحث عن كل بريد إلكتروني (نموذج مبسط: أحرف/أرقام/نقاط/شرطات سفلية @ المجال). بهذه الطريقة يمكن أن يؤدي رد الاتصال إلى `***@domain`.
إظهار التلميح
قم بتوسيع الفصل إلى [\\w.]+ لقبول النقاط في اسم المستخدم والمجال.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Match every word consisting of letters in the text, so it can be transformed to uppercase via a callback.
إظهار التلميح
ابحث عن الحروف البسيطة باستخدام [a-zA-Z]+.
الحل متاح بعد 3 من المحاولات