جاري التحميل...

دوال النصوص

تعرف كيف تكتب سلسلة. هذه الجلسة عن الدوال المرتبطة بالنص: تغيّر حالة الحروف، تقطع جزءاً، تنظّف المسافات، تستبدل كلمة، أو تسأل «هل هذه العبارة موجودة؟». لا تحفظ كل دوال اللغة دفعة واحدة — ابدأ بمجموعة يومية قصيرة.

كيف تعمل دوال النصوص في JavaScript؟

دالة النص تُستدعى على قيمة السلسلة بنقطة واسم وقوسين: "hi".toUpperCase(). معظمها تُرجع سلسلة جديدة. الأصل لا يتغيّر إلا إذا خزّنت النتيجة (let clean = raw.trim()). للبداية: toUpperCase / toLowerCase للحالة، slice للقطع، trim لمسافات الطرفين، replace لأول تطابق، includes لنعم/لا، وindexOf لموضع البداية (أو -1 إن غاب).

أدوات دوال النص

📊 دوال النص التي يحتاجها المبتدئ أولاً

الفكرة مثال النتيجة / ملاحظة
أحرف كبيرة "hi".toUpperCase() "HI"
slice "JavaScript".slice(0, 4) "Java" (نهاية الفهرس غير مشمولة)
trim " hi ".trim() "hi"
replace "a-a".replace("-", "/") "a/a" (أول تطابق فقط)
includes "hello".includes("ell") true
indexOf "hello".indexOf("l") 2 (أول فهرس؛ الغياب = -1)

غيّر حالة الحروف

toUpperCase() وtoLowerCase() تبنيان سلسلة جديدة بحروف موحّدة. مفيد قبل مقارنة نص كتبه المستخدم.

أحرف كبيرة وصغيرة

javascript
let city = "Tehran";
console.log(city.toUpperCase());
console.log(city.toLowerCase());
console.log(city);

اقطع جزءاً بـ slice

slice(start, end) ينسخ من start حتى قبل end. احذف end لتصل لآخر حرف. الفهارس تبدأ من 0.

قطع السلسلة بـ slice

javascript
let word = "JavaScript";
console.log(word.slice(0, 4));
console.log(word.slice(4));
console.log(word);

نظّف مسافات الطرفين بـ trim

مدخل المستخدم كثيراً ما يحمل مسافات في البداية أو النهاية. trim() يزيلها ويبقي المسافات وسط النص.

تنظيف المسافات بـ trim

javascript
let raw = "  hello  ";
let clean = raw.trim();
console.log(raw.length);
console.log(clean.length);
console.log(clean);

استبدل نصاً بـ replace

replace(old, new) يبدّل أول تطابق لـ old بـ new. باقي السلسلة كما هو. (استبدال كل التطابقات موضوع لاحق.)

استبدال أول تطابق

javascript
let line = "red-blue-red";
console.log(line.replace("-", "/"));
console.log(line);

ابحث بـ includes و indexOf

includes(piece) يجيب نعم/لا (true / false). indexOf(piece) يعيد فهرس أول تطابق، أو -1 إن لم يُوجد.

includes و indexOf

javascript
let msg = "Welcome guest";
console.log(msg.includes("guest"));
console.log(msg.includes("admin"));
console.log(msg.indexOf("come"));
console.log(msg.indexOf("x"));

عنوان نظيف في الصفحة

نظّف المدخل بـ trim، وحّد الحالة، ثم اعرضه بـ textContent.

الصفحة تعرض عنواناً منظّفاً

html
<!DOCTYPE html>
<html>
<head>
<title>String methods — clean title</title>
</head>
<body>
<p id="out">…</p>
<script>
let raw = "  javaScript methods  ";
let title = raw.trim().toUpperCase();
document.getElementById("out").textContent = title;
</script>
</body>
</html>

الفقرة تعرض العنوان المنظّف. غيّر raw فقط، حدّث الصفحة، وتأكد أن التنظيف والحالة طبّقا معاً.

جرّبها بنفسك

  1. سجّل "Tehran".toUpperCase() و"Tehran".toLowerCase()؛ إن خزّنتها في متغير فانظر الأصل أيضاً.
  2. من "JavaScript" اقطع أول أربعة أحرف بـ slice، ثم من الفهرس 4 حتى النهاية.
  3. نظّف " hi " بـ trim وقارن .length قبل وبعد.
  4. على "a-b-c" استبدل أول "-" بـ "/"؛ سجّل النتيجة والأصل.
  5. على جملة قصيرة افحص includes لكلمة موجودة وأخرى غائبة؛ وسجّل indexOf لحرف.
  6. في عرض HTML غيّر raw فقط، حدّث، واقرأ العنوان الجديد.

أخطاء شائعة

  • كتابة toUpperCase بلا () — تحتاج استدعاء: .toUpperCase()
  • توقع أن "hi".toUpperCase() يغيّر الأصل — تُرجع قيمة جديدة؛ خزّنها إن لزم
  • ظنّ أن slice(0, 4) يشمل الفهرس 4 — نهاية المدى مستثناة
  • افتراض أن replace يبدّل كل التطابقات — الافتراضي أول تطابق فقط
  • الاعتماد على indexOf وحده حين تريد نعم/لا واضحة — includes أوضح لذلك

ملخص

  • استدعِ الدوال بـ . + الاسم + ()
  • toUpperCase / toLowerCase تغيّران الحالة؛ slice يقطع؛ trim ينظّف الطرفين
  • replace يبدّل أول تطابق؛ includes / indexOf يبحثان داخل السلسلة
  • غالباً تُرجع قيمة جديدة — خزّنها إن أردت الإبقاء عليها
  • التالي: القيم المنطقية — true وfalse لقرارات نعم/لا

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
8
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى