التعابير النمطية
سطر هذه الصفحة يُقرأ true / Order: mint، وقيمة note التي ننطلق منها هي Order: tea. التعبير النمطي نمط يُشغَّل على نص: /tea/ يسأل إن كانت tea حاضرة، وreplace يُرجع نصاً جديداً وُضع فيه mint في ذلك الموضع.
التخزين كان في الصفحة السابقة
صفحة الخريطة توقفت عند lida / mint / 2 لأن عملها تخزين. هنا لا يُحفظ ضيف. العمل بحث داخل سلسلة نصية. إن أخفق البحث رجع false أو null، ومن غير أن يُرمى خطأ.
النمط داخل النص أو غائب عنه
لأن النمط جالس داخل mint tea، فإن /tea/.test("mint tea") يساوي true. أما lemon فلا يحمله، فـ /tea/.test("lemon") يساوي false. العلم i يتجاهل حالة الأحرف، لذلك يطابق /tea/i الكلمة Tea.
console.log(/tea/.test("mint tea"));
console.log(/tea/.test("lemon"));
يظهر في السجل true ثم false. النقطة تطابق أي محرف واحد ما دام ليس فاصل سطر، ولهذا يطابق /t.a/ كلمة tea أيضاً. النقطة الحقيقية تُكتب شرطة مائلة عكسية ثم نقطة: .
من أول حرف إلى آخر حرف
^ تعني البداية و$ تعني النهاية. /^tea$/ يقبل tea ويرفض mint tea. إذا غابت العلامتان نجح /tea/ حتى لو جلست tea داخل ملاحظة أطول.
console.log(/^tea$/.test("tea"));
console.log(/^tea$/.test("mint tea"));
السجل هنا true ثم false. حروف tea موجودة داخل mint tea، غير أن النص ليس tea وحدها.
كل نسخة، ثم نص جديد
match مع العلم g يعيد كل نسخة. replace مع g يبدّل كل نسخة ويعيد نصاً جديداً. يبقى note على حاله إلى أن تُسند النتيجة إليه.
const note = "tea and tea";
console.log(note.match(/tea/g));
console.log(note.replace(/tea/g, "mint"));
console.log(note);
سجل match مصفوفة من سلسلتين tea. سجل replace هو mint and mint. السجل الثالث ما زال tea and tea، لأن replace لم يمس note. من دون g لا تتغير إلا tea الأولى. إن لم يُطابق شيء أعاد match القيمة null لا مصفوفة فارغة.
شكل الجواب يختار الدالة
اختر الدالة بحسب شكل الجواب الذي تحتاجه.
📊 ماذا تُرجع كل دالة
| الدالة | شكل الناتج | على هذه الملاحظة |
|---|---|---|
/tea/.test(note) |
true أو false | true لأجل Order: tea |
note.match(/tea/) |
مصفوفة تطابق واحدة أو null | كلمة tea وموضعها |
note.match(/tea/g) |
كل النسخ أو null | نسختان داخل tea and tea |
note.replace(/tea/, "mint") |
نص جديد | Order: mint |
test جوابه نعم أو لا. match يناولك القطع. replace يناولك النص بعد إعادة كتابته. إن أردت الإبقاء على ذلك النص فأسنده.
ما الذي تكتبه الصفحة
تختبر الصفحة Order: tea، وتستبدل المشروب، وتكتب النتيجتين معاً.
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const note = "Order: tea";
const found = /tea/.test(note);
const next = note.replace(/tea/, "mint");
document.querySelector("#line").textContent = found + " / " + next;
</script>
</body>
</html>
يُقرأ السطر true / Order: mint. أما note نفسه فما زال Order: tea. وكان lida / mint / 2 خاصاً بصفحة الخريطة.
خمس محاولات قصيرة
- اختبر mint tea بالنمط /tea/. النتيجة true.
- اختبر lemon بالنمط /tea/. النتيجة false.
- اختبر mint tea بالنمط /^tea$/. النتيجة false.
- طابق tea and tea بالنمط /tea/g. طول المصفوفة 2.
- اقرأ الصفحة. السطر true / Order: mint.
ما يفسد القراءة، وما يبقى
من دون ^ و$ يطابق النمط قطعة لا الملاحظة كلها. replace لا يعدّل الأصل.
- لا تقرأ null.length حين لا يجد match شيئاً
- لا تتوقع أن replace يغيّر note في مكانه
- لا تضع g على نمط تعيد استخدامه مع test، لأنه يتذكر أين توقف
- اكتب النقطة الحقيقية شرطة مائلة عكسية ثم نقطة
- لا تقرأ السطر كأنه lida / mint / 2
يبقى معك
- test يجيب true أو false
- /^tea$/ يقبل السلسلة tea كاملة فقط
- match مع g يسرد كل نسخة أو يعيد null
- replace يعيد نصاً جديداً
- سطر الصفحة true / Order: mint
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى