مختبِر 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 في التفاصيل.