أداة اختبار Regex

اختبر تعبيرًا نمطيًا مقابل نص عينة، مع تمييز التطابقات مباشرة أثناء الكتابة. شاهد كل تطابق ومجموعات التقاطه.

مرجع العلامات

g شامل (يجد كل التطابقات، مُطبَّق دائمًا داخليًا هنا)، i غير حساس لحالة الأحرف، m متعدد الأسطر (^ و$ يطابقان حدود الأسطر)، s dotAll (. يطابق الأسطر الجديدة)، u يونيكود، y لاصق.

كيف يعمل

يُجمَّع نمطك بمحرك RegExp الأصلي للمتصفح، وهو نفس المحرك تمامًا الذي سيستخدمه كود جافاسكريبت في الإنتاج. هذه هي فائدة الاختبار هنا بدلًا من أداة مبنية على PCRE: الصياغة التي تختلف بين النكهات (دعم lookbehind، دلالات \d تحت علامة u، المجموعات المسمّاة) تتصرف هنا تمامًا كما ستتصرف في Node أو المتصفح. يُنقَّى حقل العلامات إلى المجموعة الصالحة (d g i m s u y)، وتضيف الأداة بصمت g داخليًا حتى تتمكن من المرور على كل تطابق، دون تغيير ما كتبته.

تعمل المطابقة مع كل ضغطة مفتاح: تستدعي الأداة exec() في حلقة، جامعةً نص التطابق وموضعه ومجموعات الالتقاط. حارسان يحافظان على الدقة: التطابقات صفرية الطول (من أنماط مثل a*) تحصل على زيادة يدوية للفهرس حتى لا تدور الحلقة إلى الأبد، ويُحدَّد التكرار بحد أقصى 5000 تطابق. يُبنى التمييز بالمرور على نص اختبارك مرة واحدة وتغليف كل نطاق مطابق، مع تهريب كل النص إلى HTML أولًا حتى يُعرَض تطابق يحتوي <script> كنص، لا كترميز.

يبقى كل شيء في تبويبك؛ تُظهر لوحة Network في أدوات المطوّر صفر طلبات أثناء الكتابة، لذا نصوص الاختبار التي تحتوي بيانات حقيقية لا تغادر جهازك أبدًا.

مطبّ يستحق المعرفة: المُحدِّدات الكمية المتداخلة مثل (a+)+$ يمكن أن تُطلِق تراجعًا كارثيًا، حيث ينفجر وقت المطابقة أسّيًا على إدخال طويل شبه مطابق. إذا تجمّدت الصفحة مع نمط كهذا، فالمشكلة ليست في الأداة، بل في التعبير النمطي نفسه، وسيُعلِّق كود الإنتاج لديك بنفس الطريقة. أعد صياغة النمط حتى لا تستطيع المجموعات المُحدَّدة كميًا مطابقة نفس الأحرف بطرق متعددة.