استخدام كائن 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() عن نص لقيمة معينة و تعيد النص للقيمة التي تم ايجادها . إن لم يتم إيجاد أي نتيجة ستعود قيمة فارغة null .

يبحث المثال التالي عن كلمة فيها حرف e :

var patt1=new RegExp("e");

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

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

e