freeCodeCamp/guide/arabic/javascript/regular-expressions-reference/index.md

96 lines
6.4 KiB
Markdown
Raw Normal View History

---
title: Regular Expressions Reference
localeTitle: مرجع التعبيرات العادية
---
## مرجع التعبيرات العادية
في JavaScript ، تعتبر التعبيرات العادية اختصارًا تستخدم لمطابقة الجزء المطلوب من السلسلة. هذه هي مفيدة عند محاولة معالجة أو التحقق من صحة سلاسل المستخدمة في التعليمات البرمجية.
### بناء الجملة
تتكون التعبيرات العادية من جزأين - `pattern` `flags` (اختياري). النمط مكتوب بين شريحتين مائلتين ، متبوعتين بالأعلام الاختيارية: `var exp = /pattern/flags` .
#### أنماط - رسم
استخدام الحروف الأبجدية الرقمية (AZ، az، 0-9) يجعلها مطابقة مباشرة. ومع ذلك ، فإن القوة الحقيقية للتعبيرات العادية تأتي مع فئات الشخصيات.
قل ، على سبيل المثال ، تريد كل الأماكن سلسلة تحتوي على رقم من 0-9. بدلاً من الاتصال صراحة `/[0-9]/` ، يمكنك استخدام فئة الأحرف الخاصة لـ `/\d/` . تخطي الخط المائل العكسي الحرف `d` (لذا لا تتطابق مع الحرف `d` ) ، ولكن بدلاً من ذلك ، يستخدم قدرات المطابقة الخاصة لـ `\d` .
ينطبق هذا المبدأ نفسه على الأحرف غير الرقمية والمساحة البيضاء ومجموعات المطابقة العامة الأخرى. يمكن أن تصبح التعبيرات العادية أكثر تعقيدًا باستخدام بعض أنواع التعديل ، مثل الرمز `+` .
يسمح لك هذا المقيم بمطابقة الحرف السابق في نمطك مرة واحدة أو أكثر. `/s+/` سوف تطابق `s` في `desert` وكلا `s` الصورة في `dessert` !
هناك الكثير من المعدلات التي تسمح للنمط الخاص بك بمطابقة كل ما قد تحتاجه. راجع قسم "مزيد من المعلومات" أدناه للاطلاع على جميع خيارات الأحرف الممكنة للاستخدام في التعبيرات العادية.
#### أعلام
هناك 5 علامات يمكنك استخدامها لتطبيق قواعد محددة على التعبير العادي بأكمله الذي تكتبه. هم انهم:
`g` - المباراة العالمية ؛ هذا يسمح لك بمطابقة كل حالات التعبير الخاص بك ، بدلاً من التوقف بعد التواجد الأول.
`i` - مطابقة حالة التجاهل (لا تحتاج إلى شرح)
`m` - المباراة متعددة الخطوط. هذا ينطبق نمطك على كل سطر جديد ؛ إذا كنت تبحث عن خط يبدأ بنمط معين ، فإن هذا يفعل ذلك لجميع الخطوط ، وليس فقط في السطر الأول
`u` - تطابق Unicode ؛ هذه الإشارات لقراءة نمطك ك Unicode بدلاً من النص العادي
`y` - المباراة لزجة. هذا يطابق النقش الخاص بك فقط بدءاً من الفهرس الموجود في الخاصية `RegExp.lastIndex`
### خلق تعبير عادي
التعبير العادي هو نوع من الكائنات. يمكن بناؤها إما مع منشئ RegExp أو مكتوبة كقيمة حرفية من خلال إحاطة نمط في مائلة (/) حرفا.
`var re1 = new RegExp (" abc ") ;
var re2 = / abc /;
`
تمثل كل من كائنات التعبير العادية نفس النمط: حرف متبوعًا بـ ab متبوعًا بـ c.
### كائن RegExp
`RegExp` هو مُنشئ يقوم بإنشاء كائن من نمط التعبير العادي الذي تقوم بإنشائه. بالإضافة إلى التدوين الحرفي الموضح أعلاه ، يمكنك أيضًا استخدام تنسيق المُنشئ لإنشاء تعبير عادي: `new RegExp(pattern[, flags])`
### اختبار للمباريات
`console . log (/ abc /. test (" abcde ") );
// → true
console . log (/ abc /. test (" abxde ") );
// → false
`
### مطابقة مجموعة من الشخصيات
`console . log (/[0123456789]/. test (" in 1992") );
// → true
console . log (/[0 -9]/. test (" in 1992") );
// → true
`
### أنماط الاختيار
`var animalCount = /\ b \ d + ( pig | cow | chicken )s ?\ b /;
console . log ( animalCount . test ("15 pigs ") );
// → true
console . log ( animalCount . test ("15 pigchickens ") );
// → false
`
#### أساليب
ستستخدم على الأرجح التعبيرات العادية في أساليب `String` ، مثل `String.replace()` ، ولكن هناك عدد قليل من الطرق التي تنتمي إلى كائن `RegExp` .
على سبيل المثال ، يقوم `RegExp.test()` بإرجاع قيمة منطقية لتحديد ما إذا كان هناك تطابق بين نمط التعبير العادي والسلسلة المعنية. `RegExp.toString()` بتحويل كائن التعبير إلى سلسلة ، والتي يمكن أن تكون مفيدة عند تشغيل الاختبارات على التعليمات البرمجية.
يمكن أن تكون الوسيطة الأولى أيضًا تعبيرًا عاديًا ، وفي هذه الحالة يتم استبدال المطابقة الأولى للتعبير العادي. عند إضافة خيار ag (للعامة) إلى التعبير العادي ، سيتم استبدال كل التطابقات في السلسلة ، وليس فقط الأول.
`console . log (" Borobudur ". replace (/[ ou ]/ , "a ") );
// → Barobudur
console . log (" Borobudur ". replace (/[ ou ]/g , "a ") );
// → Barabadar
`
### معلومات اكثر:
* [هنا يمكنك أن تقرأ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) عن جميع أنماط مطابقة الأحرف ، خصائص الكائن ، انظر بعض الأمثلة وأكثر.
* [في ما يلي موقع رائع](https://regex101.com/) يتيح لك اختبار أنماط التعبير العادية في الوقت الفعلي وحفظ المفضلة واستكشاف الأنماط التي تم إنشاؤها بواسطة الآخرين.