String metodlari — split, join, trim, replace, includes, startsWith, endsWith, padStart, padEnd

~20 daq · JavaScript · Ob'ektlar va Massivlar

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