در حال بارگذاری...

متدهای رشته

ساخت رشته را بلد شدید. حالا نوبت متد است: ابزارهایی که روی همان متن صدا می‌زنید تا حروف را بزرگ/کوچک کنید، تکه‌ای ببُرید، فاصلهٔ اضافه را پاک کنید، یک بخش را عوض کنید، یا بپرسید «این عبارت داخلش هست؟» لازم نیست همهٔ متدهای زبان را یک‌جا حفظ کنید؛ با یک بستهٔ روزمره شروع کنید.

متدهای رشته در 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 را عوض کنید، رفرش کنید، و ببینید هم trim اعمال شده هم حروف بزرگ.

خودتان امتحان کنید

  1. "Tehran".toUpperCase() و "Tehran".toLowerCase() را لاگ بگیرید؛ اگر اول در متغیر گذاشتید، مقدار اصلی را هم ببینید.
  2. از "JavaScript" چهار نویسهٔ اول را با slice ببُرید؛ بعد از اندیس 4 تا آخر را هم slice کنید.
  3. " hi " را trim کنید و .length قبل و بعد را مقایسه کنید.
  4. روی "a-b-c" اولین "-" را با replace به "/" عوض کنید؛ هم نتیجه را لاگ بگیرید هم اصل را.
  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%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود