String metodlari — split, join, trim, replace, includes, startsWith, endsWith, padStart, padEnd
Muammodan boshlaylik
Foydalanuvchi forma to'ldirdi. Kelgan ma'lumotlar:
const ism = " Jasur "; // ← bo'sh joylar bor
const email = "JASUR@GMAIL.COM"; // ← katta harflar
const telefon = "+998-90-123-45-67"; // ← tire bilan
const csv = "Ali,Vali,Soli"; // ← vergul bilan ajratilgan
Bularni tozalash, bo'lish, tekshirish — barchasi string metodlari orqali.
trim, trimStart, trimEnd — bo'sh joylarni olib tashlash
Foydalanuvchi ko'pincha boshiga yoki oxiriga tasodifan bo'sh joy bosadi. trim ikki tarafdan olib tashlaydi.
const ism = " Jasur ";
console.log(ism.trim()); // "Jasur" ← ikki tarafdan
console.log(ism.trimStart()); // "Jasur " ← faqat chapdan
console.log(ism.trimEnd()); // " Jasur" ← faqat o'ngdan
Formadan kelgan har qanday matn trim() dan o'tkazilishi kerak.
toUpperCase, toLowerCase — registr o'zgartirish
const email = "JASUR@GMAIL.COM";
console.log(email.toLowerCase()); // "jasur@gmail.com"
console.log("salom".toUpperCase()); // "SALOM"
Email larni taqqoslashda har doim bir xil registrga o'tkazing:
const kiritilgan = "Jasur@Gmail.Com";
const bazadagi = "jasur@gmail.com";
console.log(kiritilgan === bazadagi); // false ❌
console.log(kiritilgan.toLowerCase() === bazadagi); // true ✅
split — matnni massivga bo'lish
split(ajratuvchi) — matnni belgilangan belgidan bo'lib, massiv qaytaradi.
const csv = "Ali,Vali,Soli";
const ismlar = csv.split(",");
console.log(ismlar); // ["Ali", "Vali", "Soli"]
const sana = "2026-06-17";
const [yil, oy, kun] = sana.split("-");
console.log(yil); // "2026"
console.log(oy); // "06"
console.log(kun); // "17"
Har bir harfga bo'lish:
"salom".split(""); // ["s", "a", "l", "o", "m"]
"salom".split(" "); // ["salom"] ← bo'sh joy yo'q, bitta element
Telefon raqamidan faqat raqamlarni olish:
const telefon = "+998-90-123-45-67";
const raqamlar = telefon.split("-").join(""); // ← tire ni olib tashlab, biriktirish
console.log(raqamlar); // "+998901234567"
join — massivni matnga biriktirish
join(ajratuvchi) — massiv elementlarini birlashtiradi. split ning teskarisi.
const ismlar = ["Ali", "Vali", "Soli"];
console.log(ismlar.join(", ")); // "Ali, Vali, Soli"
console.log(ismlar.join(" va ")); // "Ali va Vali va Soli"
console.log(ismlar.join("")); // "AliValiSoli"
URL yaratish:
const qismlar = ["https://example.com", "api", "users", "42"];
console.log(qismlar.join("/")); // "https://example.com/api/users/42"
includes — ichida bormi?
includes(qidirilayotgan) — matnda belgilangan qism bormi? true/false qaytaradi.
const matn = "JavaScript juda zo'r til";
console.log(matn.includes("JavaScript")); // true
console.log(matn.includes("Python")); // false
console.log(matn.includes("java")); // false ← katta-kichik harfga sezgir
Registrga sezgir emasligini ta'minlash:
const qidiruv = "javascript";
console.log(matn.toLowerCase().includes(qidiruv.toLowerCase())); // true ✅
startsWith va endsWith — boshi va oxiri
const fayl = "hujjat.pdf";
console.log(fayl.startsWith("hujjat")); // true
console.log(fayl.endsWith(".pdf")); // true
console.log(fayl.endsWith(".docx")); // false
Fayl turini tekshirish:
const fayllar = ["rasm.jpg", "hujjat.pdf", "foto.png", "jadval.xlsx"];
const rasmlar = fayllar.filter(f => f.endsWith(".jpg") || f.endsWith(".png"));
console.log(rasmlar); // ["rasm.jpg", "foto.png"]
URL tekshirish:
const url = "https://example.com/api/users";
if (url.startsWith("https://")) {
console.log("Xavfsiz ulanish ✅");
}
replace va replaceAll — almashtirish
replace — birinchi uchragan joyni almashtiradi.
replaceAll — hammasini almashtiradi.
const matn = "Olma mazali. Olma foydali.";
console.log(matn.replace("Olma", "Nok")); // "Nok mazali. Olma foydali." ← faqat birinchi
console.log(matn.replaceAll("Olma", "Nok")); // "Nok mazali. Nok foydali." ← hammasi
Telefon raqamini formatlash:
const xom = "998901234567";
const formatlangan = xom
.replace(/(\d{3})(\d{2})(\d{3})(\d{2})(\d{2})/, "+$1 $2 $3-$4-$5");
console.log(formatlangan); // "+998 90 123-45-67"
Oddiy holat — maxsus belgilarni olib tashlash:
const kiruvchi = "Salom!!! Qandaysiz???";
const toza = kiruvchi.replaceAll("!", "").replaceAll("?", "");
console.log(toza); // "Salom Qandaysiz"
padStart va padEnd — to'ldirish
padStart(uzunlik, belgi) — chapdan to'ldiradi.
padEnd(uzunlik, belgi) — o'ngdan to'ldiradi.
// Raqamlarni bir xil kenglika keltirish
console.log("7".padStart(3, "0")); // "007"
console.log("42".padStart(3, "0")); // "042"
console.log("100".padStart(3, "0")); // "100"
Chek raqami generatsiyasi:
const raqam = 42;
const chekRaqami = String(raqam).padStart(8, "0");
console.log(chekRaqami); // "00000042"
Jadval ko'rinishi:
const mahsulotlar = [
{ nomi: "Noutbuk", narx: 8000000 },
{ nomi: "Quloqlik", narx: 450000 },
];
mahsulotlar.forEach(m => {
const nomi = m.nomi.padEnd(12, " ");
const narx = String(m.narx).padStart(10, " ");
console.log(`${nomi} ${narx}`);
});
// "Noutbuk 8000000"
// "Quloqlik 450000"
Tez-tez uchraydigan xatolar
String metodlari asl matnni o'zgartirmaydi:
let matn = " salom ";
matn.trim(); // ❌ — natija yo'qoldi
console.log(matn); // " salom " ← o'zgarmadi
matn = matn.trim(); // ✅ — natijani saqlash kerak
console.log(matn); // "salom"
includes katta-kichik harfga sezgir:
const matn = "JavaScript";
console.log(matn.includes("javascript")); // false ❌
console.log(matn.toLowerCase().includes("javascript")); // true ✅
split bo'sh satr bilan chaqirish:
"salom".split(""); // ["s","a","l","o","m"] ← harflarga bo'ladi
"salom".split(); // ["salom"] ← bo'linmadi, butun massiv
Xulosa
| Metod | Nima qiladi |
|---|---|
trim() |
ikki tarafdan bo'sh joy olib tashlaydi |
toLowerCase() / toUpperCase() |
registr o'zgartiradi |
split(ajr) |
matni massivga bo'ladi |
join(ajr) |
massivni matnga biriktiradi |
includes(qism) |
ichida bormi? |
startsWith(qism) |
boshida bormi? |
endsWith(qism) |
oxirida bormi? |
replace(eski, yangi) |
birinchisini almashtiradi |
replaceAll(eski, yangi) |
hammasini almashtiradi |
padStart(n, belgi) |
chapdan to'ldiradi |
padEnd(n, belgi) |
o'ngdan to'ldiradi |
Barchasi asl matnni o'zgartirmaydi — yangi matn qaytaradi.
Keyingi dars
27-dars: Prototype va Prototype Chain