English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسيات JavaScript

أجسام JavaScript

وظائف JavaScript

JS HTML DOM

BOM لمتصفح JS

دليل أساسيات AJAX

دليل JavaScript

تعبير النمط (RegExp) في JavaScript

تسمى تعبيرات النصوص العادية عادةً بـ“regex” أو “RegExp”، وهي أنماط تستخدم للتوافق مع مجموعات من الأحرف في النصوص.

تعبيرات النصوص العادية هي واحدة من الأدوات الأكثر قوة المتاحة اليوم، وتستطيع التعامل بفعالية مع وتعديل النصوص.

يمكن استخدام تعبيرات النصية للقيام بجميع أنواعبحث النصوالتبديل النصعمليات

يمكن أن تكون تعبير النصية حرفًا واحدًا أو نمطًا أكثر تعقيدًا.

في JavaScript، تعبيرات النصية هي أيضًا كائنات.

إنشاء تعبير نصي

يمكنك إنشاء تعبير نصي بطرقين من خلال

استخدام تعبير النصيةنص، يتكون من نمط مدمج بين الأسلاك، مثل ما يلي:

  var regex = /w3codebox/g

أو استدعاءبناءوظيفة، مثل ما يلي:

  var regex = new RegExp("w3codebox", "g");

مثال توضيحي:

  • w3codeboxهو نمط (للبحث)

  • gهي التعديل (للبحث عن التطابق الكامل)

باستخدامبناءوظيفة يمكن أن تقدم ترجمة تعبير النصية في الوقت الفعلي.

عندما لا تعرف النمط وتحصل على النمط من مصدر آخر (مثل إدخال المستخدم) استخدمبناءوظيفة

ملاحظة:هذانصيستخدم جملة الأسلوب ( /pattern/) لتغليف نمط تعبير النصية، بينما يستخدم جملة التركيب ('pattern').

استخدام طرق النص

في JavaScript، تستخدم ثلاث طرق نصية شائعة تعبيرات النصية:search()،replace()والmatch().

search()تستخدم الطريقة تعبيرًا نصيًا للبحث عن تطابق، ثم تعيد موقع التطابق.

replace()تستعيد الطريقة نصًا تم تعديله، حيث يتم استبدال النمط.

match()يبحث الطريقة في الخط عن تطابقات مع التعبيرات التقليدية، ثم تعود كـ Array.

طريقة search()

search()تقوم الطريقة بالبحث عن تطابق بين تعبير النصية والنص.

إذا تم العثور على تطابق، سيقوم بإرجاع موقع التطابق الأول، وإذا لم يتم العثور على تطابق، سيقوم بإرجاع-1:

var str = 'The question is to be, or not to be, that is to be.';
var pos = str.search('to be');
اختبار لـ «/»

يوضح المثال التالي استخدامiاستخدام التعديلات في تعبيرات النصية (تجاهل الحساسية للتنسيق):

var str = 'The question is TO BE, or not to be, that is to be.';
var pos = str.search(/to be/i);
اختبار لـ «/»

يمكن أن تجعل وظيفة البحث أكثر قوة باستخدام تعبيرات النصية (مثل، غير حساس للتنسيق).

طريقة replace()

replace()يستعيد الطريقة نصًا جديدًا يحتوي على تطابق جزئي أو كامل للنمط ويتم استبداله بالبديل.

الاولى هي القيمة التي سيتم العثور عليها، والثانية هي القيمة التي سيتم استبدالها.

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace('to be', 'ZZZ');
اختبار لـ «/»

بافتراض النصreplace()يتبديل الطريقة فقط التطابق الأول.

لإجراء استبدال البحث الكامل، استخدم معgالتعبيرات التقليدية التعديلية (البحث الكامل):

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace(/to be/g, 'ZZZ');
اختبار لـ «/»

لإجراء استبدال غير الحساسية بالحروف الكبيرة، استخدم معiالتعبيرات التقليدية التعديلية (غير الحساسة بالحروف الكبيرة):

var str1 = 'The question is TO BE, or not to be, that is to be.';
var str2 = str1.replace(/to be/gi, 'ZZZ');
اختبار لـ «/»

طريقة match()

match()يبحث الطريقة في الخط عن تطابقات مع التعبيرات التقليدية، ثم تعود كـ Array.

var str = 'POLLUTION: Air Pollution is introduction of chemicals to the atmosphere';
var reg = str.match(/ion/g);
اختبار لـ «/»

تعديلات التعبيرات التقليدية

التعديلات تستخدم لتنفيذ البحث الكامل، الحساسية للحروف الكبيرة، والبحث عبر الأسطر:

التعديلاتالوصفمثال
gتنفيذ التطابق الكامل، أي البحث عن جميع التطابقات، وليس التوقف عند التطابق الأول فقطتجربة
iتنفيذ التطابق غير الحساس بالحروف الكبيرةتجربة
mتنفيذ التطابق عبر الأسطرتجربة

نمط التعبيرات التقليدية

نمط التعبيرات التقليدية يشمل الأحرف والأرقام والرموز النمطية، وأعداد من الرموز النمطية الخاصة.

الأقواس المربعة []للبحث عن سلسلة من الأحرف:

التعبيرالوصفمثال
[abc]البحث عن أي حرف بين الأقواس المربعةتجربة
[0-9]البحث عن أي حرف بين الأقواس المربعة (أي عدد)تجربة
(x|y)البحث عن أي بديل محددتجربة

الرموز النمطيةهو حرف بسيط، يسبقه شرط، والذي يعطي له هذه المجموعة معنى خاص:

الرموز النمطيةالوصفمثال
\dالبحث عن رقمتجربة
\Wالبحث عن غير الأحرفتجربة
\sالبحث عن مسافاتتجربة

الكمياتتحديد موقع سلسلة الحروف بين الأعداد أو بين الأقواس المربعة الموجودة في البكسات:

التعبيرالوصفمثال
z+التطابق مع أي محتوى يحتوي على على الأقل تكرارًا واحدًاzالخطتجربة
z*التطابق مع أي محتوى يحتوي على صفر أو أكثر من التكراراتzالخطتجربة
z?التطابق مع أي محتوى يحتوي على صفر أو واحد من التكراراتzالخطتجربة

استخدام METHODات RegExp

في JavaScript،RegExp هو كائن تعبيرات تقليدية يحتوي على خصائص ومETHODات مسبقة التحديد.

test()تقوم بالبحث عن النمط في النص، وتعيد true أو false بناءً على النتيجة.

exec()تقوم بالبحث عن النمط في النص، وتعيد النص المكتشف كجسم.

طريقة test()

test()تقوم هذه الطريقة بالبحث عن تطابق في النص المحدد.

إذا تم العثور على تطابق، فإنها تعودtrue؛ وإلا، تعودfalse.

باستخدامtest()أنت تعرف النمط الذي تريد معرفة ما إذا كان موجودًا في النص.

var str = "ar.oldtoolbag.com";
var regex = new RegExp("h");
var ans = regex.test(str);
اختبار لـ «/»

عندما تريد معرفة ما إذا كان النمط المطلوب موجودًا في النص.test()تعود قيمة بولية، والفرق هوexec()هي تعود نصًا.

طريقة exec()

exec()تقوم هذه الطريقة بالبحث عن تطابق في النص المحدد.

إذا تم العثور على تطابق، فإن هذه الطريقة تعود النص المطابق؛ وإلا، تعود null.

var str = "ar.oldtoolbag.com";
var regex = new RegExp("h");
var ans = regex.exec(str);
اختبار لـ «/»

تحقق من الإدخال باستخدام تعبير النص

حساب عدد الحروف الصوتية في النص:

أدخل بعض النصوص في حقل الإدخال للعرض عدد الحروف الصوتية:

عدد الحروف الصوتية في الإدخال:

تشغيل الكود

مرجع RegExp الكامل

للحصول على مرجع كامل للخصائص وطرقها، يرجى زيارةمرجع RegExp لـ JavaScript.

يحتوي الجزء المشار إليه على وصفات ومراجعات أمثلة لجميع خصائص RegExp وطرقها.