استخدام كائن RegExp

استخدام كائن RegExp

ان RegExp اختصار لكلمة Regular Expression أي التعابير القياسية .

ماهو RegExp ؟

ان التعابير القياسية هي كائن يوصف نماذج الأحرف .
عندما تبحث عن نص معين , يمكنك استخدام نموذج لشرح ماتبحث عنه .
يحتوي النموذج البسيط على حرف واحد بينما النموذج المعقد يحتوي على أكثر كلمة . يمكن استخدام النموذج المعقد أيضاً مع التعريب و فحص التنسيقات و الإبدال وغيرهم .
تستخدم أيضاً التعابير القياسية لإنشاء نماذج تقنية تعتمد على الحاسوب مثل الوظيفة “بحث و استبدال” .
تركيبة الكود
var patt=new RegExp(pattern,modifiers);
أو ببساطة أكثر

var patt=/pattern/modifiers;
  • يحدد النموذج نموذج التعبير .
  • تحدد اللواحق فيما اذا البحث سيكون خارجي global أو حالة حساسة case-sensitive الخ .

أدوات RegExp

تستخدم الأدوات لتحديد حالة غير حساسة case-insensitive و بحث خارجي global searches .
يستخدم i لإيجاد حالة غير حساسة case-insensitive .
أما g يستخدم لتحديد بحث خارجي وإيجاد جميع النتائج المطلوبة بالاضافة الى التوقف بعد أول نتيجة بحث .
مثال 1 :
إنشاء بحث وبحالة غير حساسة عند كتابة الكلمات للكلمة “المعهد” كنص :
var str="المعهد العربي للبرمجة";
var patt1=/المعهد/i;
ستكون النتيجة عند حدوث مطابقة عند البحث :
المعهد العربي للبرمجة

 مثال 2 :
سنقوم ببحث خارجي للكلمة “is” :
var str="Is this all there is?";
var patt1=/is/g;
ستكون النتيجة عند حدوث مطابقة عند البحث :
Is this all there is?

مثال 3 :
إجراء بحث خارجي مع حالة غير حساسة عند البحث للكلمة “is” :
var str="Is this all there is?";
var patt1=/is/gi;
ستكون النتيجة عند حدوث مطابقة عند البحث :
Is this all there is?

الطريقة test()

تبحث الطريقة test() على النصوص على قيمة معينة وترجع بالنتيجة صحيحة أو خاطئة  اعتماداً على النتيجة .
يبحث المثال التالي عن كلمة فيها حرف e :
مثال
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
بما أن هناك حرف “e” في الكلمة فإن النتيجة ستعطي كالتالي :
true

الطريقة exec()

ستبحث الطريقة exec() عن نص لقيمة معينة و تعيد النص للقيمة التي تم ايجادها . إن لم يتم إيجاد أي نتيجة ستعود قيمة فارغة nulll .
يبحث المثال التالي عن كلمة فيها حرف e :
var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free"));

بما أن هناك حرف “e” في الكلمة فإن النتيجة ستعطي كالتالي :
شكرا لك ولمرورك