← Ilmdosh ITDasturlash kurslari
KICHIK LOYIHA · HTML + JAVASCRIPT

Matn uchun kichik yordamchi

Matnni yozing va so‘zlar hamda bo‘shliq bilan birga belgilar sonini ko‘ring. Bu loyiha input hodisasi va matnni tahlil qilishni o‘rgatadi.

← Loyiha tanlash

Avval mazmunini tushunamiz

Bo‘sh matnni split bilan to‘g‘ridan-to‘g‘ri bo‘lsak bitta bo‘sh bo‘lak chiqishi mumkin. Shu sababli avval trim bilan tekshiramiz. Ushbu oddiy so‘z hisoblagich bo‘shliqlar bo‘yicha sanaydi: barcha tillar uchun lingvistik so‘z aniqlovchi emas.

1234
  1. Matn yozish
  2. Chekka bo‘shliqlar
  3. Bo‘shliqda ajratish
  4. Hisobni yangilash

Tayyor natijani sinab ko‘ring

Bu ishlaydigan lokal namuna. Qiymat kiriting va natijani quyidagi tekshiruvlar bilan solishtiring. Hech qanday ma’lumot serverga yuborilmaydi.

Qadam bilan yaratamiz

  1. Matn uchun textarea va jonli natija uchun output yarating.
  2. input hodisasi yozish va o‘chirishdan keyin ishlaydi.
  3. trim natijasi bo‘sh bo‘lsa so‘z 0; aks holda ketma-ket bo‘shliqlar bo‘yicha ajrating.
  4. Array.from matnni Unicode kod nuqtalariga ajratadi. Ba’zi emoji bir nechta kod nuqtasidan iboratligini eslang.

To‘liq kod

Kodni index.html nomli faylga saqlang va brauzerda oching. Hech qanday paket o‘rnatilmaydi. Kod ustidagi tugma shu namunaning faylini saqlaydi.

Namuna faylini saqlash
<!doctype html><html lang="uz"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Matn uchun kichik yordamchi</title><style>body{font:18px/1.7 system-ui;padding:20px;color:#173c54}label{display:block;margin:12px 0}input,textarea{display:block;box-sizing:border-box;max-width:100%;width:100%;font:inherit;padding:9px;border:1px solid #8caec4;border-radius:8px}button{font:inherit;padding:9px 12px;border:1px solid #5486a7;border-radius:10px;background:#e4efff;color:#193f61;cursor:pointer}output{display:block;padding:15px;background:#e6f5ed;margin:18px 0;border-radius:12px}li{margin:10px 0}</style><main><h1>Matn uchun kichik yordamchi</h1><label>Matningiz <textarea id="matn" rows="5" placeholder="Bugun kod yozaman"></textarea></label><output id="natija" aria-live="polite">0 so‘z · 0 kod nuqtasi</output></main><script>document.querySelector('#matn').addEventListener('input', event => {
  const matn = event.target.value;
  const toza = matn.trim();
  const sozlar = toza ? toza.split(/\s+/u).length : 0;
  const belgilar = Array.from(matn).length;
  document.querySelector('#natija').textContent =
    `${sozlar} so‘z · ${belgilar} kod nuqtasi (bo‘shliqlar bilan)`;
});</script></html>

O‘zingiz tekshiring

Mustaqil rivojlantiring

Belgilar chegarasi 100 bo‘lgan holat uchun qolgan sonni ko‘rsating. Ortiqcha matnni o‘chirmang: faqat tushunarli ogohlantirish chiqaring.

Tartib: faylni saqlang → brauzerda oching → odatiy kirishni tekshiring → xato kirishni tekshiring → bitta yangi imkoniyat qo‘shing. Konsoldagi birinchi xabarni o‘qing; hamma kodni birdan almashtirmang.