دوال النصوص
تعرف كيف تكتب سلسلة. هذه الجلسة عن الدوال المرتبطة بالنص: تغيّر حالة الحروف، تقطع جزءاً، تنظّف المسافات، تستبدل كلمة، أو تسأل «هل هذه العبارة موجودة؟». لا تحفظ كل دوال اللغة دفعة واحدة — ابدأ بمجموعة يومية قصيرة.
كيف تعمل دوال النصوص في 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() تبنيان سلسلة جديدة بحروف موحّدة. مفيد قبل مقارنة نص كتبه المستخدم.
let city = "Tehran";
console.log(city.toUpperCase());
console.log(city.toLowerCase());
console.log(city);
اقطع جزءاً بـ slice
slice(start, end) ينسخ من start حتى قبل end. احذف end لتصل لآخر حرف. الفهارس تبدأ من 0.
let word = "JavaScript";
console.log(word.slice(0, 4));
console.log(word.slice(4));
console.log(word);
نظّف مسافات الطرفين بـ trim
مدخل المستخدم كثيراً ما يحمل مسافات في البداية أو النهاية. trim() يزيلها ويبقي المسافات وسط النص.
let raw = " hello ";
let clean = raw.trim();
console.log(raw.length);
console.log(clean.length);
console.log(clean);
استبدل نصاً بـ replace
replace(old, new) يبدّل أول تطابق لـ old بـ new. باقي السلسلة كما هو. (استبدال كل التطابقات موضوع لاحق.)
let line = "red-blue-red";
console.log(line.replace("-", "/"));
console.log(line);
ابحث بـ includes و indexOf
includes(piece) يجيب نعم/لا (true / false). indexOf(piece) يعيد فهرس أول تطابق، أو -1 إن لم يُوجد.
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.
<!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 فقط، حدّث الصفحة، وتأكد أن التنظيف والحالة طبّقا معاً.
جرّبها بنفسك
- سجّل
"Tehran".toUpperCase()و"Tehran".toLowerCase()؛ إن خزّنتها في متغير فانظر الأصل أيضاً. - من
"JavaScript"اقطع أول أربعة أحرف بـslice، ثم من الفهرس4حتى النهاية. - نظّف
" hi "بـ trim وقارن.lengthقبل وبعد. - على
"a-b-c"استبدل أول"-"بـ"/"؛ سجّل النتيجة والأصل. - على جملة قصيرة افحص
includesلكلمة موجودة وأخرى غائبة؛ وسجّلindexOfلحرف. - في عرض HTML غيّر
rawفقط، حدّث، واقرأ العنوان الجديد.
أخطاء شائعة
- كتابة
toUpperCaseبلا()— تحتاج استدعاء:.toUpperCase() - توقع أن
"hi".toUpperCase()يغيّر الأصل — تُرجع قيمة جديدة؛ خزّنها إن لزم - ظنّ أن
slice(0, 4)يشمل الفهرس4— نهاية المدى مستثناة - افتراض أن
replaceيبدّل كل التطابقات — الافتراضي أول تطابق فقط - الاعتماد على
indexOfوحده حين تريد نعم/لا واضحة —includesأوضح لذلك
ملخص
- استدعِ الدوال بـ
.+ الاسم +() toUpperCase/toLowerCaseتغيّران الحالة؛sliceيقطع؛trimينظّف الطرفينreplaceيبدّل أول تطابق؛includes/indexOfيبحثان داخل السلسلة- غالباً تُرجع قيمة جديدة — خزّنها إن أردت الإبقاء عليها
- التالي: القيم المنطقية —
trueوfalseلقرارات نعم/لا
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى