متدهای رشته
ساخت رشته را بلد شدید. حالا نوبت متد است: ابزارهایی که روی همان متن صدا میزنید تا حروف را بزرگ/کوچک کنید، تکهای ببُرید، فاصلهٔ اضافه را پاک کنید، یک بخش را عوض کنید، یا بپرسید «این عبارت داخلش هست؟» لازم نیست همهٔ متدهای زبان را یکجا حفظ کنید؛ با یک بستهٔ روزمره شروع کنید.
متدهای رشته در 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 را عوض کنید، رفرش کنید، و ببینید هم trim اعمال شده هم حروف بزرگ.
خودتان امتحان کنید
"Tehran".toUpperCase()و"Tehran".toLowerCase()را لاگ بگیرید؛ اگر اول در متغیر گذاشتید، مقدار اصلی را هم ببینید.- از
"JavaScript"چهار نویسهٔ اول را باsliceببُرید؛ بعد از اندیس4تا آخر را همsliceکنید. " hi "را trim کنید و.lengthقبل و بعد را مقایسه کنید.- روی
"a-b-c"اولین"-"را باreplaceبه"/"عوض کنید؛ هم نتیجه را لاگ بگیرید هم اصل را. - روی یک جملهٔ کوتاه،
includesرا برای کلمهای که هست و کلمهای که نیست چک کنید؛ برای یک حرفindexOfبگیرید. - در دموی HTML فقط
rawرا عوض کنید، رفرش کنید، عنوان تازه را بخوانید.
اشتباههای رایج
- نوشتن
toUpperCaseبدون()— باید صدا بزنید:.toUpperCase() - انتظار اینکه
"hi".toUpperCase()خودِ متغیر را عوض کند — نتیجهٔ تازه برمیگردد؛ اگر لازم دارید مقداردهی کنید - فکر کردن که
slice(0, 4)اندیس4را هم شامل میشود — اندیس پایان جزو نتیجه نیست - فرض اینکه
replaceهمهٔ تطابقها را عوض میکند — پیشفرض فقط اولی است - وقتی فقط بله/خیر میخواهید فقط به
indexOfتکیه کنید — برای آن کارincludesخواناتر است
خلاصه
- متد را با
.+ نام +()صدا بزنید toUpperCase/toLowerCaseحروف را عوض میکنند؛sliceتکه میبُرد؛trimدو سر را تمیز میکندreplaceاولین تطابق را عوض میکند؛includesوindexOfداخل رشته میگردند- معمولاً مقدار تازه برمیگردد — اگر میخواهید نگه دارید، ذخیره کنید
- بعدی: مقدارهای بولی —
trueوfalseبرای تصمیم بله/خیر
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود