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

جميع الأعلام بالتفصيل

ملخص كامل لجميع العلامات المتوفرة في جافا سكريبت الحديثة (ES2024). العلم هو حرف واحد يعدل سلوك التعبير العادي؛ يمكن دمجها بأي ترتيب.

علمالاسمتأثير
محمي_INLINE_0عالمييبحث عن جميع التطابقات، وليس فقط التطابقات الأولى (مطلوب لـ matchAll).
محمي_INLINE_2تجاهل الحالةغير حساسة لحالة الأحرف (بما في ذلك أحرف Unicode مع العلامة u/v).
محمي_INLINE_5متعدد الأسطر^ و$ يتطابقان مع بداية/نهاية السطر، وليس فقط السلسلة.
محمي_INLINE_8نقطة الكليتطابق . أيضًا مع السطر الجديد \n.
محمي_INLINE_11يونيكودالمعالجة الصحيحة لنقاط التعليمات البرمجية > 0xFFFF وتمكين \\p{...}.
محمي_INLINE_13وضع Unicode vملحق حديث لـ u مع عمليات ضبط ([abc&&[def]]).
محمي_INLINE_16مثبتيتطابق فقط من الموضع lastIndex، بدون تخطي.
محمي_INLINE_18لديه مؤشراتتتضمن النتيجة indices مع بداية/نهاية كل مجموعة.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

مجموعات نموذجية

  • g + i -- "ابحث عن كل شيء، غير حساس لحالة الأحرف". 80% من الاستخدامات العملية.
  • g + m - لمطابقة سطرًا بسطر في نص متعدد الأسطر.
  • g + s -- "النقطة تتطابق مع أي شيء، بما في ذلك الأسطر الجديدة". مفيد لاستخراج الكتل عبر خطوط متعددة.
  • u (أو v) -- دائمًا إذا كنت تتعامل مع نص حقيقي بأي لغة أو رمز تعبيري.

وضع Unicode v وتطور العلم

تحل العلامة v (المتوفرة في ES2024) محل u وتمكن العمليات المتقدمة على المجموعات، مثل تقاطع فئة الأحرف والطرح (على سبيل المثال [\\p{White_Space}&&\\p{ASCII}]).

جربه

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

ابحث عن كافة تكرارات 'ciao' بغض النظر عن الحالة. استخدم العلم الصحيح.

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

أضف علامة i (غير حساسة لحالة الأحرف) بجوار g.

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

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

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

ابحث عن كتلة بين `<pre>` و`</pre>` حتى لو كانت تحتوي على أسطر جديدة. يجب عليك استخدام العلامة التي تجعل النقطة تتطابق أيضًا مع الأسطر الجديدة.

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

أضف علامة s لذلك . يطابق الأسطر الجديدة أيضًا، ويستخدم Lazy .+؟ للتوقف عند أول </pre>.

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

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

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

Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.

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

استخدم علامة v واكتب مجموعة الطرح [\\p{ASCII}--\\p{Nd}]+ لاستبعاد الأرقام.

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