59- دروس جافا سكربت – JS RegExp

## التعبيرات النمطية في JavaScript (JS RegExp)

التعبيرات النمطية (Regular Expressions) هي أدوات قوية ومفيدة في البرمجة [شركة برمجة مصرية] تتيح للمطورين إجراء مطابقة للأنماط داخل النصوص. تُستخدم في البحث واستبدال النصوص، التحقق من صحة البيانات، واستخراج المعلومات [شركة برمجة مصرية] من سلاسل النصوص. في JavaScript، تُعرف التعبيرات النمطية بـ RegExp، وهي جزء من اللغة منذ إصداراتها الأولى.

### الأساسيات

التعبير النمطي هو سلسلة نصية تُستخدم لتعريف نمط البحث. يُحيط النمط عادة بخطين مائلين `/pattern/`، ويمكن أن يتضمن مجموعة متنوعة من الأحرف والعوامل.

#### بناء الجملة

let regex = /pattern/flags;

– **pattern**: النمط الذي تريد البحث عنه.
– **flags**: وسوم اختيارية للتحكم في سلوك البحث. من أشهرها:
– `g` (global): للبحث عن كل التطابقات في النص.
– `i` (ignore case): لتجاهل حالة الأحرف.
– `m` (multiline): للبحث في نصوص متعددة الأسطر.

### أمثلة عملية

#### البحث عن تطابق بسيط

لنفترض أن لديك سلسلة نصية وتريد التحقق مما إذا كانت تحتوي على كلمة معينة.

let text = "Hello, welcome to the world of JavaScript!";
let regex = /welcome/;
console.log(regex.test(text)); // true

#### استخدام الوسوم

إذا أردت البحث بشكل غير حساس لحالة الأحرف:

let text = "Hello, Welcome to the world of JavaScript!";
let regex = /welcome/i;
console.log(regex.test(text)); // true

#### البحث عن كل التطابقات

لإيجاد جميع المطابقات في نص:

let text = "The rain in SPAIN stays mainly in the plain.";
let regex = /ain/g;
let matches = text.match(regex);
console.log(matches); // ["ain", "ain", "ain"]

### التعبيرات النمطية المتقدمة

#### المجموعات والخيارات

يمكن استخدام الأقواس لتجميع أجزاء من النمط أو لتحديد خيارات متعددة.

let regex = /(cat|dog)/g;
let text = "I have a cat and a dog.";
let matches = text.match(regex);
console.log(matches); // ["cat", "dog"]

#### الأحرف الخاصة

تُستخدم بعض الأحرف الخاصة لتعبر عن معانٍ معينة، مثل:

– `d`: أي رقم.
– `w`: أي حرف أو رقم أو شرطة سفلية.
– `s`: مسافة بيضاء.
– `.`: أي حرف ما عدا الأسطر الجديدة.

مثال على استخدام الأحرف الخاصة:

let text = "The price is 100 dollars.";
let regex = /d+/;
let match = text.match(regex);
console.log(match[0]); // "100"

#### حدود الكلمات

يمكن استخدام `b` لتحديد بداية أو نهاية كلمة:

let text = "The cat sat on the mat.";
let regex = /bcatb/;
console.log(regex.test(text)); // true

#### التكرار

يمكن استخدام الأقواس المعقوفة لتحديد عدد تكرارات حرف أو مجموعة معينة:

let regex = /d{3}/;
let text = "The number is 123456.";
let match = text.match(regex);
console.log(match[0]); // "123"

### الخاتمة

تُعتبر التعبيرات النمطية في JavaScript أداة قوية لمعالجة النصوص، وتقدم مرونة كبيرة في البحث والتحقق من الأنماط. من خلال استخدام التعبيرات النمطية، يمكنك تبسيط العمليات المعقدة المتعلقة بالنصوص، مما يساهم في كتابة كود أكثر كفاءة وفعالية. مع ذلك، قد تحتاج إلى بعض الوقت للتعود على بناء الجملة الخاص بها، ولكن بمجرد إتقانها، ستجدها أداة لا غنى عنها في تطوير البرمجيات.