| الدالة | الوظيفة |
|---|---|
| toUpperCase() / toLowerCase() | تحويل حالة الأحرف |
| trim() | إزالة المسافات من الطرفين |
| includes() / startsWith() / endsWith() | التحقق من وجود نص فرعي |
| slice() | استخراج جزء من النص |
| split() | تقسيم النص إلى مصفوفة |
| replace() / replaceAll() | استبدال جزء من النص |
النصوص (Strings) في جافاسكريبت هي سلاسل من الحروف، وتُكتب بين علامات اقتباس مفردة، أو مزدوجة، أو باستخدام الـ Backticks (` `) التي تُتيح ميزة قوية تُسمى Template Literals — كتابة متغيرات مباشرة داخل النص عبر ${متغير}، ودعم أسطر متعددة دون رموز خاصة، مما يجعلها الخيار المفضل في الكود الحديث بدل الجمع اليدوي بعامل +.
النصوص تمتلك مجموعة غنية من الدوال المدمجة. length تُعطي عدد الحروف (خاصية وليست دالة). toUpperCase() وtoLowerCase() لتحويل حالة الأحرف. trim() لإزالة المسافات الزائدة من البداية والنهاية. includes() للتحقق من وجود نص فرعي، وstartsWith() وendsWith() للتحقق من بداية أو نهاية النص تحديداً.
slice() وsubstring() تستخرجان جزءاً من النص بين موضعين، مع فرق دقيق: slice() تقبل مواضع سالبة (تُحسب من النهاية) بينما substring() تُحوّل السالب إلى صفر. split() تُقسّم النص إلى مصفوفة بناءً على فاصل محدد، وهي عكس join() التي تُستخدم على المصفوفات لدمجها في نص واحد.
replace() تستبدل أول تطابق فقط، بينما replaceAll() (الأحدث) تستبدل كل التطابقات. المهم جداً تذكّره: النصوص في جافاسكريبت غير قابلة للتغيير (Immutable) — أي دالة على نص لا تُعدّله في مكانه، بل تُعيد نصاً جديداً دائماً، ويجب تخزين الناتج في متغير لاستخدامه.
| 1 | const اسم = "محمد"; |
| 2 | const عمر = 28; |
| 3 | |
| 4 | // Template Literals |
| 5 | const رسالة = `مرحباً ${اسم}، عمرك ${عمر} سنة`; |
| 6 | |
| 7 | " نص بمسافات ".trim(); // "نص بمسافات" |
| 8 | "HELLO".toLowerCase(); // "hello" |
| 9 | "جافاسكريبت رائعة".split(" "); // ["جافاسكريبت", "رائعة"] |
مثال 1: Template Literals مقابل الجمع اليدوي
| 1 | // Template Literals مقابل الجمع التقليدي |
| 2 | const المنتج = "لابتوب"; |
| 3 | const السعر = 3500; |
| 4 | |
| 5 | // الطريقة القديمة |
| 6 | const وصف1 = "المنتج: " + المنتج + "، السعر: " + السعر + " ريال"; |
| 7 | |
| 8 | // الطريقة الحديثة (أوضح بكثير) |
| 9 | const وصف2 = `المنتج: ${المنتج}، السعر: ${السعر} ريال`; |
| 10 | |
| 11 | console.log(وصف2); |
مثال 2: تنظيف ومعالجة النصوص عملياً
| 1 | // دوال نصية شائعة في سيناريو حقيقي |
| 2 | const بريد = " Ahmed@Example.COM "; |
| 3 | const بريد_نظيف = بريد.trim().toLowerCase(); |
| 4 | console.log(بريد_نظيف); // "ahmed@example.com" |
| 5 | |
| 6 | const جملة = "جافاسكريبت لغة قوية ومرنة"; |
| 7 | console.log(جملة.includes("قوية")); // true |
| 8 | console.log(جملة.replace("قوية", "رائعة")); |
| 9 | console.log(جملة.split(" ")); |