اختبار التعبيرات النمطية: جرّب ما يجب رفضه أيضًا
العثور على تطابق واحد بداية جيدة، لكنه لا يثبت أن النمط يفعل ما تقصده. الاختبار المفيد يتضمن نصًا قريبًا من المطلوب يجب ألا يقبله النمط.
اكتب القاعدة بلغة عادية أولًا
هل تبحث عن رمز داخل فقرة، أم تتحقق من السطر كله؟ الفرق مهم: نمط يعثر على جزء صحيح داخل نص غير صحيح قد يبدو ناجحًا رغم أنه لا يحقق شرطك.
اختر حالات صغيرة توضح الحروف والطول والحدود. لا تبدأ بنص طويل يصعب تفسير موضع نجاحه أو فشله، ولا تعتبر التعبير بديلًا عن قواعد العمل التي لم تكتبها.
الأعلام واللغة تغيران النتيجة
يطلب g البحث عن عدة مطابقات، بينما يغير i التعامل مع حالة الحروف. وفي JavaScript لا يكفي الاعتماد على \w لتمثيل كلمات كل اللغات؛ لمعالجة الحروف عمومًا يمكن أن تحتاج خصائص Unicode مع u.
ToolRoof يختبر صياغة JavaScript والأعلام g وi وm وs وu. المواضع المعروضة بوحدات UTF-16 وليست دائمًا عدد الرموز التي تراها؛ لا تنقل النتيجة إلى محرك مختلف بافتراض التطابق التام.
المراجع: MDN — JavaScript regular expressions, flags and Unicode
نجاح الأمثلة ليس شهادة أمان
اختبر حالة لا تطابق وحالة على الحد الأدنى والأقصى الذي تقصده. راجع أيضًا نصًا متعدد الأسطر إذا كانت قاعدتك ستستخدم معه.
الأداة تحد المعالجة وتعرض حتى 200 مطابقة؛ بلوغ الحد لا يعني انتهاء كل المطابقات. لا تمنح حكمًا بأن النمط سريع أو آمن لكل مدخل، ولا تشغل شيفرة الاستبدال أو تنفذ نصًا أدخلته.
مثال: رمزان صحيحان وحالتان قريبتان
في النص ID-17 ID-204 ID-7 XID-99، يعطي النمط \bID-\d{2,3}\b مع g المطابقتين ID-17 وID-204. يرفض ID-7 لقصر الرقم، ولا يبدأ داخل XID-99 بسبب حد الكلمة.
دون g تعاد المطابقة الأولى فقط. هذه القاعدة تخص رموز المثال؛ لا تثبت وجود معرفات حقيقية أو صلاحية الوصول إليها، ولا تتحقق من أي قاعدة أخرى تخص نظامك.