استخدام كائن 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

ليست هناك تعليقات:

إرسال تعليق