ما هو التعبير النمطي؟
نمط للبحث عن نصوص ومطابقتها — مثالي للتحقّق (بريد، هاتف) والبحث والاستبدال المتقدّم.
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, +, ^, $). ممتازة للتحقّق من المدخلات.