حبيت أقدم لكم بعض التعبيرات المنطقية المستخدمة في البرمجة الملائمة للغات PHP و Javascript و Perl
التعبيرات المنتظمة Regular Expression
التعابير النمطية هي أسلوب لوصف النصوص والتعرف عليها بطريق وصف مكوناتها من رموز، ووصف علاقات تلك الرموز من توال وتكرار، وذلك بكيفية نظامية يمكن لخوارزمية أن تفسرها وتطبقها على نص مُعطى لاستخراج الجزء المنطبق عليه التعبير النمطي.
تستخدم التعابير النمطية في الحوسبة لمعالجة النصوص وفي مولدات مفسرات لغات البرمجة ولتدقيق مُدخلات البرمجيات، وتوجد تطبيقات لها في معظم لغات البرمجة.
وهي تقوم بمطابقة حالة الاحرف الخاصة بالتعبيرات القياسية ( المنطقية. Regex )
اختصارا regex او regexp
ونستخدم ذلك التعبير كصورة مجردة للتعبير عن نص معين
سبب الأهمية
البحث عن مقطع معين بصورة معينة .. على سبيل المثال البحث عن الروابط او الصور فى صفحة ويب معينة وربما امكانية تحديث ذلك المقطع بإستبدال جزء من العنوان وحتي ربما التأكد من صحة نص معين ك أي بي او ايميل او موقع انترنت
التعبيرات المنطقية
Perl and PHP Regular Expressions
بسم الله الرحمن الرحيم
جميع بطاقات الائتمان الرئيسية
هذا التعبير المنطقي سوف يتحقق من صيغ جميع بطاقات الائتمان الرئيسية ( أمريكان اكسبريس amex , فيزا , ماستر كارد , ديسكوفر discover
كود:
//All major credit cards regex
'/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|622((12[6-9]|1[3-9][0-9])|([2-8][0-9][0-9])|(9(([0-1][0-9])|(2[0-5]))))[0-9]{10}|64[4-9][0-9]{13}|65[0-9]{14}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})*$/'
التحقق من الأحرف الأبجدية والرقمية
اختبار تحقق الاحرف الابجدية والرقمية
كود:
//Alpha-numeric characters only
'/^[a-zA-Z0-9]*$/'
أحرف أبجدية رقمية مع وجود المسافات
اختبار تحقق الأحرف الأبجدية والرقمية مع وجود مسافات
كود:
//Alpha-numeric characters with spaces only
'/^[a-zA-Z0-9 ]*$/'
تحقق الأحرف الأبجدية فقط
هذا التعبير المنطقي يختبر حالة الأحرف الأبجدية فقط (الكبيرة منها والصغيرة)
كود:
//Alphabetic characters only
'/^[a-zA-Z]*$/'
تحقق بطاقة ائتمان امريكان اكسبريس فقط
كود:
//Amex credit card regex
'/^(3[47][0-9]{13})*$/'
التعبير المنطقي لصنايق البريد الاسترالية
كود:
//Australian Postal Codes
'/^((0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2}))*$/'
التعبير المنطقي لصنايق البريد الكندية
نفس اختبار تحقق التعبير المنطقي السابق لكن لصناديق البريد الكندية
كود:
//Canadian Postal Codes
'/^([ABCEGHJKLMNPRSTVXY][0-9][A-Z] [0-9][A-Z][0-9])*$/'
التعبير المنطقي للتحقق من المقاطعات الكندية
يقوم هذا التعبير المنطقي بالتحقق من مطابقة المقاطعات والولايات الكندية
كود:
//Canadian Province Abbreviations
'/^(?:AB|BC|MB|N[BLTSU]|ON|PE|QC|SK|YT)*$/'
التعبير المنطقي للتحقق من الولايات الأمريكية
يقوم هذا التعبير المنطقي بالتحقق من مطابقة الولايات الأمريكية
كود:
//US States regex
'/^(?:A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])*$/'
التعبير المنطقي من التاريخ شهر/يوم/سنة
تحقق من صحة تاريخ التقويم في MM / DD / YYYY ، تقتصر السنوات ما بين 1900 و 2099
كود:
//Date (MM/DD/YYYY)
'/^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/'
التعبير المنطقي من التاريخ عكسي
تحقق من صحة تاريخ التقويم في YYYY/MM/DD ، تقتصر السنوات ما بين 1900 و 2099 تطبيق عكس الكود السابق له بالأعلى
كود:
//Date (YYYY/MM/DD)
'#^((19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))*$#'
تعبير التحقق من الأرقام فقط
هذا الأختبار للتحقق من الأرقام فقط (جميع الأرقام)
كود:
//Digits only
'/^[0-9]*$/'
تعبير التحقق البريد الالكتروني (الايميل)
هذا الكود للتحقق من البريد الالكتروني (أغلب أنواع الايميلات) ، هو ليس متوافق بالكامل مع جميع الإيميلات لكن سوف يتحقق من أغلبها بالطبع. راجع RFC5322-compliant
كود:
//Email regex
'/^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$/'
تعبير التحقق من الأي بي IP Address
اختبار عناوين IP مع هذا التعبير العادي
كود:
//IP address regex
'/^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$/'
تعبير التحقق من الأحرف الأبجدية الانجليزية الصغيرة
وهذا الكود لاختبار تحقق الأحرف الأبجدية الانجليزية ومطابقتها ( الصغيرة منها فقط )
كود:
//Lowercase letters only
'/^([a-z])*$/'
تعبير التحقق من مطابقة بطاقة ائتمان ماستر كارد فقط
كود:
//MasterCard credit card numbers
'/^(5[1-5][0-9]{14})*$/'
تعبير التحقق من مطابقة بطاقة ائتمان فيزا كارد فقط
كود:
//Visa credit card numbers
'/^(4[0-9]{12}(?:[0-9]{3})?)*$/'
تعبير تحقق لكلمات المرور القوية
اختبار قوي للتحقق ووضع كلمة مرور قوية ( يجب أن تحتوي على حرف صغير وحرف كبير مع رقم ، ولا يقبل أقل من كلمة مرور مكونة من 6 )
كود:
//Password regex
'/^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$/'
تعبير تحقق لأرقام تليفونات أمريكا الشمالية
التحقق من صحة أرقام الهاتف 10-أمريكا الشمالية العدد. ليس مطلوب فواصل، ولكن يمكن أن تشمل المسافات أو أقواس
كود:
//Phone number regex
'/^((([0-9]{1})*[- .(]*([0-9]{3})[- .)]*[0-9]{3}[- .]*[0-9]{4})+)*$/'
أرقام الضمان الاجتماعي SSN Number
إذا كنت في حاجة للتحقق من صحة أرقام الضمان الاجتماعي الأمريكي، استخدم هذا التعبير العادي
كود:
//SSN regex
'/^([0-9]{3}[-]*[0-9]{2}[-]*[0-9]{4})*$/'
الرمز البريدي الانجليزي UK
هذا التعبير المنطقي يتحقق من شكل صناديق البريد داخل المملكة المتحدة
كود:
//UK Postal Codes regex
'/^([A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2})*$/'
تعبير التحقق من الأحرف الأبجدية الانجليزية الكبيرة
وهذا الكود لاختبار تحقق الأحرف الأبجدية الانجليزية ومطابقتها ( الكبيرة منها فقط )
كود:
//Uppercase letters only
'/^([A-Z])*$/'
التحقق من الرابط التشعبي الصحيح URL
وهذا الكود يتحقق من مطابقة العنوان الالكتروني URL بشكل صحيح
كود:
//URL regex
'/^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$/'
التحقق من الرمز البريدي داخل الولايات المتحدة URL
كود:
//US ZIP Codes regex
'/^([0-9]{5}(?:-[0-9]{4})?)*$/'
التعبيرات المنطقية للغة جافا سكريبت
كل صيغ كروت الائتمان
كود:
//All major credit cards JavaScript regex
'^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$'
اختبار تحقق كل الاحرف الابجدية والرقمية
كود:
//JavaScript alpha-numeric characters only
'^[a-zA-Z0-9]+$'
الأحرف الأبجدية فقط
كود:
//JavaScript Alphabetic characters only
'^[a-zA-Z]+$'
الرمز البريدي الكندي
كود:
//JavaScript Canadian Postal Codes
'^[ABCEGHJKLMNPRSTVXY][0-9][A-Z] [0-9][A-Z][0-9]$'
صيغة التاريخ شهر/يوم/سنة
كود:
//JavaScript Date (MM/DD/YYYY)
'^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$'
صيغة التاريخ عكس سنة/شهر/يوم
كود:
//JavaScript Date (YYYY/MM/DD)
'^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$'
صيغة الأرقام فقط
كود:
//JavaScript digits only
'^[0-9]+$'
صيغة الايميلات الصحيحة
كود:
//JavaScript email regex
'^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$'
صيغة كلمة مرور قوية
تحتوي على حرف كبير وحرف صغير ورقم (غير مقبول أقل من 6 احرف لكلمة المرور)
كود:
//JavaScript Password regex
"(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*"
أرقام الهواتف شمال أمريكا
كود:
//JavaScript phone number regex
'^(([0-9]{1})*[- .(]*([0-9]{3})[- .)]*[0-9]{3}[- .]*[0-9]{4})+$'
عناوين المواقع الصحيحة URL
كود:
//JavaScript URL regex
'^((http|https|ftp)://)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]/+=%&_\.~?\-]*)$'
صناديق بريد الولايات المتحدة ZIP Code
كود:
//JavaScript US ZIP Codes regex
'^[0-9]{5}(?:-[0-9]{4})?$'
أتمنى أن تفيدكم هذه المكتبة البسيطة ، في حالة طلب أي كود تعبير منطقي معين اخبرنا به فقد نستطيع مساعدتك
مترجم بتصرف
ولكم جزيل الشكر
أجمل تحية