TK
أدوات المطورين

اختبار التعابير المنتظمة

اختبر تعابير JavaScript المنتظمة مع تظليل التطابقات، مجموعات الالتقاط، ومهلة Web Worker ضد catastrophic backtracking.

النمط/
  • \bWord boundary — matches between a word character and a non-word character.
  • Quantifier +Match the previous token one or more times (greedy).
    • Character classMatches a single character that is one of: `\w.%+-`.
  • Literal "@"Matches the character `@` literally.
  • Quantifier +Match the previous token one or more times (greedy).
    • Character classMatches a single character that is one of: `\w.-`.
  • Escaped "."Matches the character `.` literally (escaping its special meaning).
  • Quantifier {2,}Match the previous token a number of times specified by `{2,}`.
    • Character classMatches a single character that is one of: `A-Za-z`.
  • \bWord boundary — matches between a word character and a non-word character.
نص الاختبار
النتيجة
اكتب نمطاً ونص اختبار لرؤية التطابقات.

إدخالاتك تبقى على جهازك. كل أدوات المطورين في TaskKit تعمل في متصفحك. الرموز والـ payloads وما تلصقه لا يُرسل لخوادم TaskKit ولا لأي طرف ثالث.

ما الذي تفعله هذه الأداة

أداة اختبار تعابير منتظمة بنكهة JavaScript مع تظليل تطابقات مباشر، وتفصيل لمجموعات الالتقاط، وحماية ضد التراجع الكارثي. حقل العلامات يقبل المجموعة القياسية (g i m s u y)، وتُسرَد التطابقات بفهارس بدايتها ونهايتها وأي مجموعات مسمّاة أو مرقّمة.

متى تستخدمها

  • صياغة تعبير منتظم على عيّنة تمثيلية قبل لصقه في الكود.
  • التأكد ممّا يطابقه فعلاً تعبير منتظم من شخص آخر (وما لا يطابقه).
  • إحكام نمط كان جشعاً أو متساهلاً في الإنتاج.
  • التدرّب على نكهة JavaScript تحديداً، فلكلّ لغة دلالات تختلف بدقّة.

كيف تعمل

يُترجَم النمط بـ new RegExp(pattern, flags) ثم يُشغَّل على نص الاختبار. يجري التطابق داخل Web Worker بمهلة ثانية واحدة — إن سبّب النمط تراجعاً كارثياً على المدخل المُعطى، يُنهَى العامل وترى رسالة «استغرق التعبير المنتظم وقتاً طويلاً» بدلاً من تجمّد التبويب. هذا اعتبار حقيقي لأنماط مثل (a+)+b على مدخلات طويلة من a.

ملاحظات

لماذا الحاجة إلى Web Worker؟ محرّكات التعابير المنتظمة في المتصفحات لا تكشف مهلة، وتعبير منتظم بطيء واحد قد يجمّد الخيط الرئيسي عشرات الثواني. تشغيل التطابق داخل Worker يعني أننا نستطيع worker.terminate() ونبقى متجاوبين.

هل تدعم ميزات Perl/PCRE؟ لا — فقط لا يدعمه JavaScript. \K والمجموعات الذرّية والمحدّدات الكمّية الاستحواذية والأنماط التكرارية ليست جزءاً من نحو التعابير المنتظمة في JS. أمّا lookbehind والمجموعات المسمّاة فمدعومان.

تعبيري المنتظم يتطابق في هذه الأداة لكن لا يتطابق في الكود. افحص العلامات. تغيّر العلامة u كيف تطابق بعض فئات الأحرف Unicode؛ والعلامة g تؤثر على الحالة بين الاستدعاءات حين تعيد استخدام كائن regex.

أدوات ذات صلة