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

6.4 KiB

title localeTitle
Regular Expressions Reference مرجع التعبيرات العادية

مرجع التعبيرات العادية

في 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

معلومات اكثر:

  • هنا يمكنك أن تقرأ عن جميع أنماط مطابقة الأحرف ، خصائص الكائن ، انظر بعض الأمثلة وأكثر.

  • في ما يلي موقع رائع يتيح لك اختبار أنماط التعبير العادية في الوقت الفعلي وحفظ المفضلة واستكشاف الأنماط التي تم إنشاؤها بواسطة الآخرين.