20 نمط تعبير نمطي شائع يجب أن يعرفه كل مطور
20 نمط تعبير نمطي شائع يجب أن يعرفه كل مطور
تحل التعبيرات النمطية مشاكل حقيقية: التحقق من صحة المدخلات واستخراج البيانات وتحويل السلاسل النصية. يقدم هذا الدليل 20 تعبيرًا نمطيًا جاهزًا للاستخدام تغطي أكثر مهام معالجة النصوص شيوعًا. يتضمن كل نمط شرحًا لما يطابقه.
1. عنوان البريد الإلكتروني
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
يسمح الجزء المحلي بالأحرف والأرقام والنقاط والأحرف الخاصة. يسمح النطاق بالأحرف والأرقام والنقاط. يجب أن يكون نطاق المستوى الأعلى (TLD) حرفين على الأقل.
2. الرابط (URL)
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
يطابق روابط HTTP/HTTPS مع www اختياري واسم النطاق ونطاق المستوى الأعلى والمسار وسلسلة الاستعلام.
3. رقم الهاتف الأمريكي
^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$
يطابق (555) 123-4567 و 555-123-4567 و 555.123.4567 و 5551234567.
4. رقم الهاتف الدولي
^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
نمط مرن للأرقام الدولية مع رموز الدولة.
5. كلمة مرور قوية
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
يتطلب 8 أحرف أو أكثر، وحرفًا صغيرًا واحدًا، وحرفًا كبيرًا واحدًا، ورقمًا واحدًا، وحرفًا خاصًا واحدًا. يستخدم تأكيدات النظرة الأمامية (lookahead).
6. التاريخ (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
تنسيق ISO 8601. الشهر 01-12، اليوم 01-31. لا يتحقق من حدود كل شهر (يمر 30 فبراير).
7. التاريخ (MM/DD/YYYY)
^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$
التنسيق الأمريكي مع الشرط المائلة.
8. الوقت (HH:MM بنظام 24 ساعة)
^([01]\d|2[0-3]):[0-5]\d$
الساعات 00-23، الدقائق 00-59.
9. عنوان IPv4
^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$
أربع مجموعات رقمية. للتحقق الدقيق (0-255)، استبدل \d{1,3} بـ (25[0-5]|2[0-4]\d|[01]?\d\d?).
10. عنوان IPv6
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
IPv6 كامل مع 8 مجموعات من الأرقام السداسية عشر. لا يتعامل مع اختصار ::.
11. عنوان MAC
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
مفصول بنقطتين أو شرطة.
12. رمز اللون السداسي عشر
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
3 أرقام (#fff) أو 6 أرقام (#ffffff)، غير حساس لحالة الأحرف.
13. رقم بطاقة الائتمان
^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$
16 رقمًا مع فواصل اختيارية. لا يتحقق من خوارزمية Luhn.
14. الرمز البريدي الأمريكي
^\d{5}(-\d{4})?$
12345 أو 12345-6789.
15. اسم المستخدم
^[a-zA-Z0-9_]{3,16}$
3-16 حرفًا، أحرف وأرقام وشرطات سفلية فقط.
16. slug الرابط
^[a-z0-9-]+$
أحرف صغيرة وأرقام وشرطات. شائع في أنظمة إدارة المحتوى (CMS).
17. وسم HTML
<\/?[\w\s]*>|<.+[\w\s]*>
يطابق الوسوم الافتتاحية والختامية. غير مناسب لـ HTML المتداخل.
18. امتداد الملف
\.([a-zA-Z]{2,})$
يستخرج الامتداد بدون النقطة.
19. تطبيع المسافات البيضاء
\s+
يدمج المسافات المتعددة والتبويبات والأسطر الجديدة في مسافة واحدة.
20. استخراج الأرقام
-?\d+(\.\d+)?
الأعداد الصحيحة والعشرية، بما في ذلك السالبة.
نصائح للأداء
- كن محددًا — تجنب
.*الذي قد يسبب تراجعًا كارثيًا (catastrophic backtracking). - ثبت باستخدام
^و$لتحديد نطاق البحث. - اختبر الحالات الحدية: السلاسل الفارغة، السلاسل الطويلة، الأحرف الخاصة.
اختبر هذه الأنماط عبر الإنترنت
استخدم أداة اختبار التعبيرات النمطية لتجربة هذه الأنماط. الصق أي تعبير، وأدخل نصًا تجريبيًا، وشاهد التطابقات مبرزة في الوقت الفعلي. يعرض المختبر مجموعات الالتقاط ويساعد في تصحيح الأنماط قبل الاستخدام.