The Code Fix

🟨 شرح جافاسكريبت

التعابير النمطية (RegExp)

ما هو التعبير النمطي؟

نمط للبحث عن نصوص ومطابقتها — مثالي للتحقّق (بريد، هاتف) والبحث والاستبدال المتقدّم.

let pattern = /code/;            // بين شرطتين مائلتين
let pattern2 = new RegExp("code");

الرايات (Flags)

/code/g    // g: كل المطابقات (global)
/code/i    // i: تجاهل حالة الأحرف (insensitive)
/code/gi   // الاثنان معًا

أهم الدوال

let text = "The Code Fix";

/Code/.test(text)        // true  (هل يطابق؟)
text.match(/o/g)         // ["o", "o"]  (كل المطابقات)
text.replace(/Fix/, "Hub") // "The Code Hub"
text.search(/Code/)      // 4  (الموضع)

الرموز الأساسية

الرمزالمعنى
.أي حرف
\dرقم (0-9)
\wحرف/رقم/شرطة سفلية
\sمسافة
^بداية النص
$نهاية النص
*صفر فأكثر
+واحد فأكثر
?اختياري (صفر أو واحد)
{n}بالضبط n مرّة
[abc]أحد هذه الأحرف
(...)مجموعة
|أو

أمثلة عملية

// التحقّق من بريد إلكتروني (مبسّط)
let emailPattern = /^[\w.-]+@[\w.-]+\.\w+$/;
emailPattern.test("user@site.com")   // true

// أرقام فقط
/^\d+$/.test("12345")                // true

// رقم هاتف من 10 خانات
/^\d{10}$/.test("0791234567")        // true

// استخراج كل الأرقام
"عمري 25 وطولي 180".match(/\d+/g)    // ["25", "180"]

الأخطاء الشائعة

  • ❌ نسيان ^ و$ للتحقّق الكامل → النمط قد يطابق جزءًا فقط.
  • ❌ نسيان الراية g عند الحاجة لكل المطابقات.
  • ❌ المبالغة في التعقيد → للأنماط البسيطة قد تكفي دوال النصوص (includes).

خلاصة

التعابير النمطية /pattern/flags أداة قوية للبحث والتحقّق. استخدم test للتحقّق وmatch للاستخراج وreplace للاستبدال، وأتقن الرموز الأساسية (\d, \w, +, ^, $). ممتازة للتحقّق من المدخلات.