النصوص 🔒 يعمل داخل متصفحك — لا تُرسل أي بيانات

مختبِر Regex لـ JavaScript

اختبر النمط بمحرّك RegExp نفسه الذي ستعمل عليه شيفرة JavaScript لديك، فما يطابق هنا يطابق في شيفرتك.

/ /
نص الاختبار
المطابقات والمجموعات
تظهر المطابقات هنا...

مختبِر Regex لـ JavaScript

التعبير النمطي الذي يعمل في لغة قد يفشل في أخرى، لذا فأسلم مكان لاختبار نمط JavaScript هو محرّك JavaScript. تفتح هذه الصفحة مختبِر التعابير النمطية بمثال يستخدم مجموعات مسمّاة: النمط (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})، وتاريخان في نص الاختبار، والبديل $<day>/$<month>/$<year> الذي يعيد كتابتهما بترتيب اليوم فالشهر فالسنة.

المحرّك هو محرّك متصفحك

لا يُرسل شيء إلى أي خادم: يُترجَم النمط بـ new RegExp() داخل علامة التبويب نفسها. أي V8 في Chrome وEdge، وهو أيضًا المحرّك داخل Node.js، وSpiderMonkey في Firefox، وJavaScriptCore في Safari. الثلاثة تطبّق قواعد ECMAScript نفسها، فالنمط الذي يتصرّف هنا بشكل صحيح يتصرّف بالطريقة نفسها في شيفرة الواجهة أو Node لديك على إصدار حديث.

الرايات

الرايةالأثر
gتجد كل المطابقات لا الأولى فقط؛ وهي لازمة لاستبدالها كلها
iتتجاهل حالة الأحرف
m^ و$ تطابقان عند كل فاصل أسطر، لا عند طرفي النص فقط
s. تطابق فاصل الأسطر أيضًا
uوضع يونيكود: نقاط ترميز كاملة بدل وحدات UTF-16، وproperty escapes مثل \p{L}
yلاصقة (sticky): تطابق فقط حيث انتهت المطابقة السابقة
dتسجّل بداية كل مجموعة ونهايتها، للشيفرة التي تقرأ match.indices

يُحذف أي حرف آخر قبل أن يصل النمط إلى المحرّك، بما في ذلك الراية الأحدث v. أما الحرف المكتوب مرتين، مثل gg، فهو خطأ، وتعرض الأداة رسالة المحرّك نفسه.

ما يوقع الناس في الخطأ مع JavaScript

  • \w و\b لا يعرفان إلا A إلى Z وa إلى z و0 إلى 9 والشرطة السفلية، فلا يريان é ولا الحروف العربية. مع الراية u يطابق \p{L} حرفًا من أي أبجدية.
  • داخل سلسلة نصية يجب مضاعفة كل شرطة عكسية: new RegExp("\\d+") هو النمط نفسه كالحرفي /\d+/. يأخذ هذا المختبِر النمط كما تكتبه بين الشرطتين المائلتين.
  • التعبير ذو الراية g يتذكّر lastIndex بين استدعاءات test() وexec()، لذا قد يعطي اختبار السلسلة نفسها مرتين true ثم false.
  • replace() مع سلسلة عادية بدل النمط لا يغيّر إلا التكرار الأول؛ استخدم تعبيرًا نمطيًا مع g، أو replaceAll().
  • في البديل، $1 هو المجموعة الأولى، و$<name> مجموعة مسمّاة، و$& المطابقة كاملة، و$$ علامة دولار حرفية.

الاستبدال بالمجموعات المسمّاة

يتبع حقل «استبدال بـ» قواعد String.prototype.replace() نفسها. مع النمط المثال، يحوّل $<day>/$<month>/$<year> التاريخ 2026-09-24 إلى 24/09/2026. كما تُبقي المجموعات المسمّاة النمط مقروءًا بعد أشهر: match.groups.year أوضح من match[1].

صفحات ذات صلة

ابدأ من نمط جاهز مع نمط Regex للروابط، أو أصلح الكلمات المكرّرة عبر البحث والاستبدال بـ Regex. وللعناوين البريدية، وللأرقام وأرقام الهواتف وعناوين IP، يتعمّق دليل Regex للبريد الإلكتروني ودليل أنماط الأرقام والهواتف وعناوين IP في التفاصيل.

أدلة ذات صلة