ان 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
ليست هناك تعليقات:
إرسال تعليق