English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تسمى تعبيرات النصوص العادية عادةً بـ“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()تقوم الطريقة بالبحث عن تطابق بين تعبير النصية والنص.
إذا تم العثور على تطابق، سيقوم بإرجاع موقع التطابق الأول، وإذا لم يتم العثور على تطابق، سيقوم بإرجاع-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()يستعيد الطريقة نصًا جديدًا يحتوي على تطابق جزئي أو كامل للنمط ويتم استبداله بالبديل.
الاولى هي القيمة التي سيتم العثور عليها، والثانية هي القيمة التي سيتم استبدالها.
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()يبحث الطريقة في الخط عن تطابقات مع التعبيرات التقليدية، ثم تعود كـ 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الخط | تجربة |
في JavaScript،RegExp هو كائن تعبيرات تقليدية يحتوي على خصائص ومETHODات مسبقة التحديد.
test()تقوم بالبحث عن النمط في النص، وتعيد true أو false بناءً على النتيجة.
exec()تقوم بالبحث عن النمط في النص، وتعيد النص المكتشف كجسم.
test()تقوم هذه الطريقة بالبحث عن تطابق في النص المحدد.
إذا تم العثور على تطابق، فإنها تعودtrue؛ وإلا، تعودfalse.
باستخدامtest()أنت تعرف النمط الذي تريد معرفة ما إذا كان موجودًا في النص.
var str = "ar.oldtoolbag.com"; var regex = new RegExp("h"); var ans = regex.test(str);اختبار لـ «/»
عندما تريد معرفة ما إذا كان النمط المطلوب موجودًا في النص.test()تعود قيمة بولية، والفرق هوexec()هي تعود نصًا.
exec()تقوم هذه الطريقة بالبحث عن تطابق في النص المحدد.
إذا تم العثور على تطابق، فإن هذه الطريقة تعود النص المطابق؛ وإلا، تعود null.
var str = "ar.oldtoolbag.com"; var regex = new RegExp("h"); var ans = regex.exec(str);اختبار لـ «/»
حساب عدد الحروف الصوتية في النص:
أدخل بعض النصوص في حقل الإدخال للعرض عدد الحروف الصوتية:
عدد الحروف الصوتية في الإدخال:
للحصول على مرجع كامل للخصائص وطرقها، يرجى زيارةمرجع RegExp لـ JavaScript.
يحتوي الجزء المشار إليه على وصفات ومراجعات أمثلة لجميع خصائص RegExp وطرقها.