IlmHamroh
JavaScript Full-stack/8-qism. JavaScript asoslari22/61-dars15 daqiqa
Mundarija (35)

JavaScript'da matn ichida qidirish: includes, indexOf, startsWith

Qisqacha: Matnda biror so'z bor-yo'qligini bilish uchun matn.includes("so'z") yoziladi — natija true yoki false. So'z qayerda turganini indexOf aytadi: u indeksni, topilmasa -1 ni beradi. Matn boshini startsWith, oxirini endsWith tekshiradi. Bu metodlarning hammasi katta va kichik harfni farqlaydi.

Bu darsda

  • Metod chaqiruvini bo'laklarga ajratib o'qiy olasiz: qiymat, metod nomi va argument.
  • includes, startsWith va endsWith bilan "bormi?" savoliga javob ola olasiz.
  • indexOf va lastIndexOf bilan bo'lak qayerda turganini topasiz va -1 nimani bildirishini bilasiz.
  • Katta-kichik harf tuzog'ini va indexOf natijasini shartda ishlatish xatosini taniysiz.
  • search metodi indexOf dan nimasi bilan farq qilishini bilasiz.

Oldin bilishingiz kerak: String asoslari, Template literals, Boolean va truthy/falsy, Ternary operatori.

1. Nega bu kerak?

Siz do'kon uchun Telegram bot yozyapsiz deylik. Botga kuniga yuzlab xabar keladi. Dastur har bir xabar haqida tez javob topishi kerak:

  • Xabarda "narx" so'zi bormi? Bo'lsa, narxlar ro'yxatini yuborish kerak.
  • Mijozning telefon raqami +998 bilan boshlanadimi?
  • Yuborilgan fayl nomi .pdf bilan tugaydimi?
  • Email manzilida @ belgisi qayerda turibdi?

Odam buni ko'z bilan bir zumda ko'radi. Dastur esa "ko'rmaydi" — unga aniq buyruq kerak. Oldingi darslarda satr — belgilar ketma-ketligi ekanini va har belgining indeksi borligini o'rgandik. Endi shu belgilar orasidan kerakli bo'lakni qidiramiz.

JavaScript'da buning uchun tayyor asboblar bor. Ular metodlar deb ataladi. Metod bilan String asoslari darsida qisqa tanishgansiz (at(), toUpperCase()). Endi uni bo'laklarga ajratib, aniq ko'rib chiqamiz — bu darsdan boshlab u har qadamda uchraydi.

2. Metod nima?

2.1 Nuqta, nom va qavs

Turlarni o'zgartirish darsidagi narx.toString() va String asoslaridagi ism.at(-1) ni eslang. Bu darsdagi hamma narsa xuddi shu shaklda yoziladi:

js
const shahar = "Toshkent";
console.log(shahar.includes("kent")); // true

shahar.includes("kent") ni bo'laklarga ajratamiz:

Bo'lak Ma'nosi
shahar Qiymat — biz ishlayotgan satr
. "Shu qiymatning ..." degan belgi
includes Metod nomi — qanday ish bajariladi
("kent") Qavs ichida metodga beriladigan qiymat

Eslatib o'tamiz: metod (method) — qiymatga biriktirilgan tayyor amal. Nuqta, nom va qavs yozsangiz, shu amal bajariladi. Buni metodni chaqirish deyiladi.

Hayotdan o'xshatish: telefoningizda kalkulyator, kamera va fonar bor. Ular telefonning o'ziga o'rnatilgan — kerak bo'lsa, ochasiz va ishlatasiz. Satr ham shunday: har bir satr bilan birga o'nlab tayyor metod keladi. Siz faqat kerakli metod nomini yozasiz.

Qavs ichidagi qiymat argument (argument) deb ataladi. U metodga "nima bilan ishlash kerak" degan ma'lumotni beradi. includes("kent") da argument — "kent", ya'ni "shu bo'lakni qidir".

2.2 Metod natija qaytaradi

Metod ishini tugatgach, bitta qiymat beradi. Dasturchilar buni "metod qiymat qaytaradi" deyishadi. includes true yoki false qaytaradi.

Natijani darhol chiqarish yoki o'zgaruvchiga saqlash mumkin:

js
const xabar = "Assalomu alaykum, narxi qancha?";
const narxHaqida = xabar.includes("narx");

console.log(narxHaqida); // true
console.log(xabar); // Assalomu alaykum, narxi qancha?

E'tibor bering: xabar o'zgarmadi. Satr o'zgarmas ekanini String asoslari darsida ko'rgandik. Qidirish metodlari asl satrga tegmaydi — faqat javob beradi.

2.3 Qavssiz yozilsa nima bo'ladi?

js
console.log("Toshkent".includes); // [Function: includes]

Qavssiz metod ishga tushmaydi. JavaScript faqat "bu yerda includes degan funksiya bor" deb xabar beradi. Ha, metod aslida funksiya — qiymatga biriktirilgan funksiya. O'z funksiyalaringizni yozishni Funksiya e'lon qilish va chaqirish darsida o'rganasiz.

Hozircha bitta qoida yetarli: metod ishlashi uchun oxirida qavs bo'lishi shart. Brauzer konsoli yuqoridagi natijani ƒ includes() { [native code] } ko'rinishida chiqaradi — ma'nosi bir xil.

Tekshirib ko'ring: const ism = "Malika"; bo'lsa, ism.includes("lik") ifodasida qiymat, metod nomi va argument qaysi? Natija nima?

Javob

Qiymat — ism ichidagi "Malika" satri. Metod nomi — includes. Argument — "lik". Natija true, chunki "Malika" so'zining o'rtasida "lik" bo'lagi bor.

3. includes — bormi yoki yo'qmi?

3.1 Asosiy ishlatilishi

includes bitta savolga javob beradi: "shu bo'lak matn ichida bormi?" Javob — true yoki false.

js
const sms = "Hisobingizga 150 000 so'm tushdi. Click";

console.log(sms.includes("tushdi")); // true
console.log(sms.includes("yechildi")); // false
console.log(sms.includes("150 000")); // true

Bo'lak istalgan joyda bo'lishi mumkin: boshida, o'rtasida yoki oxirida. Bo'sh joy, raqam va tinish belgilari ham oddiy belgi sifatida qidiriladi.

Natijani ternary operatori bilan birga ishlatish qulay:

js
const sms = "Hisobingizga 150 000 so'm tushdi. Click";
const turi = sms.includes("tushdi") ? "Kirim" : "Chiqim";

console.log(turi); // Kirim

3.2 Qidirishni o'rtadan boshlash

includes ga ikkinchi argument ham berish mumkin — qidirish qaysi indeksdan boshlanishini. Argumentlar vergul bilan ajratiladi.

js
const kod = "UZ-2026-UZ";

console.log(kod.includes("UZ")); // true
console.log(kod.includes("UZ", 3)); // true
console.log(kod.includes("2026", 8)); // false

Ikkinchi qatorda qidirish 3-indeksdan boshlandi. Boshidagi "UZ" hisobga olinmadi, lekin oxiridagisi topildi. Uchinchi qatorda 8-indeksdan keyin "2026" yo'q.

Bu argument kamdan-kam kerak bo'ladi. Lekin boshqa qidirish metodlarida ham xuddi shunday "qayerdan boshlash" argumenti bor — shuning uchun uni tanib oling.

3.3 Bo'sh satr har doim "bor"

js
console.log("Salom".includes("")); // true

Bo'sh satr "" har qanday matnda "bor" hisoblanadi: harflar orasida ham "hech narsa" turadi. Bu qidiruv maydonida tuzoq bo'ladi. Foydalanuvchi hech narsa yozmasa, matn.includes(qidiruv) baribir true beradi. Shuning uchun bo'sh qidiruvni alohida tekshiring, masalan qidiruv.length > 0.

Tekshirib ko'ring: "Samarqand".includes("arq") va "Samarqand".includes("Arq") nima qaytaradi?

Javob

Birinchisi true: "Samarqand" ichida "arq" bor. Ikkinchisi false: matnda katta A bilan "Arq" yo'q. Katta va kichik harf — boshqa-boshqa belgilar. Buni keyingi bo'limda ko'ramiz.

4. Katta-kichik harf muhim

4.1 T va t — ikki xil belgi

js
const shahar = "Toshkent";

console.log(shahar.includes("toshkent")); // false
console.log(shahar.includes("Tosh")); // true

Kompyuter uchun T va t — ikki xil belgi, har birining o'z raqamli kodi bor. Buni Taqqoslash operatorlari darsida ko'rgandik. Bu darsdagi barcha qidirish metodlari katta-kichik harfga sezgir (inglizcha: case-sensitive).

4.2 Harfdan qat'i nazar qidirish

Mijoz "NARX", "Narx" yoki "narx" deb yozishi mumkin. Bot hammasini tushunishi kerak. Yechim: qidirishdan oldin matnni kichik harfga keltirish. Buni toLowerCase() metodi qiladi — u satrning kichik harfli nusxasini qaytaradi:

js
const xabar = "NARXI QANCHA?";

console.log(xabar.toLowerCase()); // narxi qancha?
console.log(xabar.toLowerCase().includes("narx")); // true

toLowerCase ni Matnni o'zgartirish va tozalash darsida to'liq o'rganamiz. Hozir ikkinchi console.log ga qarang: unda ikki metod ketma-ket chaqirildi. Avval toLowerCase() yangi satr qaytardi, keyin shu yangi satrda includes ishladi.

Bunday yozuv zanjir (chaining) deb ataladi. U chapdan o'ngga o'qiladi: "xabarni kichik harfga o'tkaz, keyin ichidan narx'ni qidir".

Diqqat: Qidirilayotgan so'z ham kichik harfda bo'lishi kerak. xabar.toLowerCase().includes("Narx") baribir false beradi: matn kichik harfga o'tdi, "Narx" esa katta harf bilan qoldi.

5. startsWith va endsWith — boshi va oxiri

5.1 Boshlanishini tekshirish

startsWith — "shu bo'lak bilan boshlanadimi?" degan savol. Nomi ikki inglizcha so'zdan: start — boshlanish, with — bilan.

js
const telefon = "+998901234567";

console.log(telefon.startsWith("+998")); // true
console.log(telefon.startsWith("998")); // false

Ikkinchi natija false, chunki raqam 9 bilan emas, + bilan boshlanadi.

Nega bu yerda includes yetmaydi? U bo'lakni istalgan joydan topadi. Rossiya raqami ichida ham tasodifan "998" uchrashi mumkin:

js
const raqam = "+79981234567";

console.log(raqam.includes("998")); // true
console.log(raqam.startsWith("+998")); // false

includes "ha, bor" dedi, lekin bu O'zbekiston raqami emas. Boshlanishni tekshirish kerak bo'lsa — faqat startsWith.

5.2 Oxirini tekshirish

endsWith — "shu bo'lak bilan tugaydimi?" (end — oxir).

js
const fayl = "shartnoma.pdf";

console.log(fayl.endsWith(".pdf")); // true
console.log(fayl.endsWith(".docx")); // false

Fayl kengaytmasini nuqtasi bilan yozing: "pdf" emas, ".pdf". Aks holda "rasm-pdf" degan nom ham "PDF fayl" bo'lib chiqadi.

Diqqat: Kengaytmani includes bilan tekshirmang. "hisobot.pdf.exe".includes(".pdf") — true, lekin bu aslida .exe dastur. Firibgarlar aynan shunday nomli fayllarni yuboradi. endsWith(".pdf") esa to'g'ri javob beradi — false.

5.3 Ikkinchi argument

startsWith ning ikkinchi argumenti — tekshirish qaysi indeksdan boshlanishi. Masalan, operator kodini tekshirish:

js
const telefon = "+998901234567";

console.log(telefon.startsWith("90", 4)); // true
console.log(telefon.startsWith("93", 4)); // false

+998 to'rt belgi (0–3 indekslar). Demak, operator kodi 4-indeksdan boshlanadi.

endsWith ning ikkinchi argumenti boshqacha — u matn uzunligi. Matn go'yo shu joyda tugagandek tekshiriladi:

js
const fayl = "hisobot.pdf.exe";

console.log(fayl.endsWith(".pdf", 11)); // true

Birinchi 11 belgi — "hisobot.pdf", u .pdf bilan tugaydi. Bu argument juda kam ishlatiladi, lekin eski kodda uchrab qolishi mumkin.

Tekshirib ko'ring: Telegram botga /start buyrug'i keldi. Xabar buyruq ekanini, ya'ni / bilan boshlanishini qaysi metod bilan tekshirasiz?

Javob

xabar.startsWith("/"). includes("/") to'g'ri kelmaydi: "1/2 kg olma" kabi oddiy xabarda ham / bor. Bizga aynan birinchi belgi kerak.

6. indexOf — qayerda turibdi?

6.1 Indeksni topish

Ba'zan "bormi?" yetmaydi — bo'lak qayerda turganini bilish kerak. Masalan, emaildagi @ dan oldingi qism — foydalanuvchi nomi. Uni ajratish uchun avval @ ning o'rnini topamiz:

js
const email = "jasur@gmail.com";

console.log(email.indexOf("@")); // 5
console.log(email.indexOf("gmail")); // 6
console.log(email.indexOf("mail.ru")); // -1

indexOf bo'lakning indeksini qaytaradi. Bo'lak bir necha belgidan iborat bo'lsa, birinchi belgisining indeksi olinadi. "gmail" 6-indeksdan boshlanadi.

Indekslarni ko'z bilan tekshirib ko'ramiz. Esingizda bo'lsa, sanash 0 dan boshlanadi:

text
j  a  s  u  r  @  g  m  a  i  l  .  c  o  m
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14

6.2 Nega -1?

"mail.ru" topilmadi, natija — -1. Nega 0 emas? Chunki 0 — to'g'ri indeks, birinchi belgining o'rni. "jasur".indexOf("j") ham 0 beradi. "Topilmadi" degan javob hech qachon indeks bo'la olmaydigan son bo'lishi kerak. Manfiy indeks bo'lmaydi — shuning uchun -1 tanlangan.

Demak, "bormi?" savolini indexOf bilan ham berish mumkin:

js
const email = "jasur@gmail.com";

console.log(email.indexOf("@") !== -1); // true

includes JavaScript'ga 2015-yilda qo'shilgan. Undan oldin hamma aynan shunday yozardi. Eski kodda !== -1 ni ko'rsangiz — bu "bormi?" degani. Yangi kodda includes o'qishga qulayroq.

6.3 Takrorlangan bo'lak

Bo'lak bir necha marta uchrasa, indexOf faqat birinchisini topadi. Ikkinchisini topish uchun ikkinchi argumentdan foydalanamiz — qidirishni birinchisidan keyingi joydan boshlaymiz:

js
const yonalish = "Toshkent-Samarqand-Buxoro";
const birinchi = yonalish.indexOf("-");

console.log(birinchi); // 8
console.log(yonalish.indexOf("-", birinchi + 1)); // 18

birinchi + 1 — 9-indeks. Qidirish shu yerdan boshlandi va keyingi - 18-indeksda topildi.

6.4 lastIndexOf — oxirgisini topish

lastIndexOf ham indeks qaytaradi, lekin bo'lakning oxirgi uchrashini topadi. Fayl kengaytmasi uchun aynan shu kerak — nomda nuqta bir nechta bo'lishi mumkin:

js
const fayl = "hisobot.2026.pdf";

console.log(fayl.indexOf(".")); // 7
console.log(fayl.lastIndexOf(".")); // 12

Kengaytma oxirgi nuqtadan keyin boshlanadi. Keyingi darsda shu indeks yordamida kengaytmani matndan kesib olamiz.

Topilmasa, lastIndexOf ham -1 qaytaradi.

Tekshirib ko'ring: "Andijon".indexOf("n") va "Andijon".lastIndexOf("n") nima qaytaradi?

Javob

1 va 6. "Andijon" so'zida n ikki marta bor: 1-indeksda (A-n-dijon) va oxirida, 6-indeksda. indexOf birinchisini, lastIndexOf oxirgisini topadi.

7. search — qisqa tanishuv

search ham indeks yoki -1 qaytaradi. Birinchi qarashda u indexOf ning egizagi:

js
console.log("jasur@gmail.com".search("@")); // 5

Lekin bitta muhim farqi bor. Mana:

js
const narx = "5.000 so'm";

console.log(narx.indexOf(".")); // 1
console.log(narx.search(".")); // 0

search nuqtani 0-indeksda "topdi", garchi u yerda 5 tursa ham. Sababi: search argumentni oddiy matn emas, muntazam ifoda (regular expression, qisqasi regex) deb tushunadi. Regex — matndagi naqshni tasvirlaydigan maxsus kichik til. Unda nuqta "istalgan bitta belgi" degani, shuning uchun birinchi belgi — 5 — mos keldi.

Regex'ni RegExp asoslari darsida o'rganamiz — hozir bilish shart emas. Qoida oddiy: oddiy matnni qidirish uchun indexOf yoki includes ishlating. search regex bilan birga kerak bo'ladi.

8. Qaysi birini tanlash?

Savol Metod Natija
Bormi? includes true / false
Shu bilan boshlanadimi? startsWith true / false
Shu bilan tugaydimi? endsWith true / false
Qayerda (birinchisi)? indexOf indeks yoki -1
Qayerda (oxirgisi)? lastIndexOf indeks yoki -1
Naqsh qayerda? search indeks yoki -1

Oddiy maslahat: agar sizga faqat "ha" yoki "yo'q" kerak bo'lsa — birinchi uchtasidan birini tanlang. Indeks keyingi ish uchun kerak bo'lsa (masalan, kesish uchun) — indexOf yoki lastIndexOf.

9. Ko'p uchraydigan xatolar

9.1 indexOf natijasini shart sifatida ishlatish

js
const xabar = "Salom, narxi qancha?";
const javob = xabar.indexOf("Salom") ? "Salom bor" : "Salom yo'q";

console.log(javob); // Salom yo'q

"Salom" bor-ku, nega "yo'q" chiqdi? indexOf 0 qaytardi — so'z aynan boshida turibdi. 0 esa falsy qiymat, ternary uni "yolg'on" deb qabul qildi.

Teskarisi ham bor: bo'lak topilmasa -1 qaytadi, -1 esa truthy. Natijada "bor" chiqadi. Qoida: indexOf natijasini hech qachon to'g'ridan-to'g'ri shartga qo'ymang. includes yoki !== -1 ishlating:

js
const xabar = "Salom, narxi qancha?";
const javob = xabar.includes("Salom") ? "Salom bor" : "Salom yo'q";

console.log(javob); // Salom bor

9.2 Metod nomida xato

js
const ism = "Ali";
console.log(ism.include("A"));
text
TypeError: ism.include is not a function

Tarjimasi: "ism.include — funksiya emas". Satrda include degan metod yo'q, to'g'risi — includes (oxirida s). JavaScript yo'q metodni chaqira olmaydi.

Katta-kichik harf ham xuddi shunday xato beradi: startswith, IndexOf, endswith — hammasi noto'g'ri. Nomdagi har bir so'z katta harf bilan qo'shiladi: startsWith, endsWith, indexOf, lastIndexOf. Bu camelCase usuli. VS Code nuqtadan keyin metodlar ro'yxatini ko'rsatadi — undan tanlash xatoni kamaytiradi.

9.3 Sonda satr metodi

js
const telefon = 998901234567;
console.log(telefon.startsWith("998"));
text
TypeError: telefon.startsWith is not a function

Xato xabari avvalgisiga o'xshaydi, lekin sababi boshqa. Nom to'g'ri yozilgan, ammo telefon — son, satr emas. Sonda satr metodlari yo'q. Avval satrga aylantiring: String(telefon).startsWith("998") (Turlarni o'zgartirish).

9.4 Qiymat yo'q bo'lsa

js
let izoh;
console.log(izoh.includes("yaxshi"));
text
TypeError: Cannot read properties of undefined (reading 'includes')

Tarjimasi: "undefined ning xususiyatlarini o'qib bo'lmaydi (includes o'qilayotgan edi)". izoh ga hali qiymat berilmagan — u undefined. "Hech narsa" da metod yo'q. Bu ko'pincha forma maydoni to'ldirilmaganda yoki ma'lumot hali kelmaganda bo'ladi.

?. va ?? darsidagi usullar yordam beradi:

js
let izoh;

console.log(izoh?.includes("yaxshi")); // undefined
console.log((izoh ?? "").includes("yaxshi")); // false

Birinchi usul: izoh yo'q bo'lsa, ?. metodni chaqirmaydi va xato o'rniga undefined beradi. Ikkinchi usul: izoh yo'q bo'lsa, uning o'rniga bo'sh satr olinadi. Natija aniq false bo'ladi.

10. Mashqlar

1-mashq (oson): Natijani oldindan ayting

Har bir ifoda nima qaytarishini yozing. const shahar = "Andijon";

  • shahar.includes("dij") →
  • shahar.startsWith("an") →
  • shahar.endsWith("jon") →
  • shahar.indexOf("x") →
  • shahar.lastIndexOf("n") →
Yechim
js
const shahar = "Andijon";

console.log(shahar.includes("dij")); // true
console.log(shahar.startsWith("an")); // false
console.log(shahar.endsWith("jon")); // true
console.log(shahar.indexOf("x")); // -1
console.log(shahar.lastIndexOf("n")); // 6

startsWith("an") — false, chunki shahar nomi katta A bilan boshlanadi. x harfi yo'q — shuning uchun -1. Oxirgi n 6-indeksda: A(0) n(1) d(2) i(3) j(4) o(5) n(6).

2-mashq (o'rta): Mijoz xabarini tekshirish

Botga shunday xabar keldi:

js
const xabar = "Salom! Chilonzorga YETKAZIB berasizmi?";

Uchta natijani konsolga chiqaring:

  1. Xabarda "yetkazib" so'zi bormi? Harf katta yoki kichik bo'lishidan qat'i nazar. Ishora: toLowerCase() bilan zanjir tuzing ("Harfdan qat'i nazar qidirish" bo'limidagi kabi).
  2. Xabar savol belgisi ? bilan tugaydimi? Ishora: endsWith.
  3. Xabar "Salom" bilan boshlanadimi? Ishora: startsWith.

Bonus: birinchi natijaga qarab ternary bilan Yetkazib berish haqida yoki Boshqa savol matnini chiqaring.

Yechim
js
const xabar = "Salom! Chilonzorga YETKAZIB berasizmi?";
const yetkazib = xabar.toLowerCase().includes("yetkazib");

console.log(yetkazib); // true
console.log(xabar.endsWith("?")); // true
console.log(xabar.startsWith("Salom")); // true

const mavzu = yetkazib ? "Yetkazib berish haqida" : "Boshqa savol";
console.log(mavzu); // Yetkazib berish haqida

toLowerCase() siz xabar.includes("yetkazib") false bergan bo'lardi — xabarda so'z katta harf bilan yozilgan.

3-mashq (qiyin): Emailni tez tekshirish

Ro'yxatdan o'tish formasida foydalanuvchi email kiritdi:

js
const email = "malika.karimova@mail.uz";

Quyidagilarni hisoblab, konsolga chiqaring:

  1. @ ning indeksi (indexOf).
  2. @ faqat bitta ekanini: birinchi va oxirgi @ ning indeksi teng bo'lishi kerak. Ishora: indexOf("@") === lastIndexOf("@").
  3. @ dan keyin nuqta bormi? Ishora: indexOf(".", qayerdan) — qidirishni @ ning indeksidan boshlang va natijani -1 bilan solishtiring.
  4. Oxirida: 2- va 3-shart ikkalasi ham bajarilsa Email to'g'ri ko'rinadi, aks holda Email xato. Ishora: && va ternary.
Yechim
js
const email = "malika.karimova@mail.uz";

const atIndeks = email.indexOf("@");
const bittami = atIndeks === email.lastIndexOf("@");
const nuqtaBor = email.indexOf(".", atIndeks) !== -1;

console.log(atIndeks); // 15
console.log(bittami); // true
console.log(nuqtaBor); // true

const holat = bittami && nuqtaBor
  ? "Email to'g'ri ko'rinadi"
  : "Email xato";
console.log(holat); // Email to'g'ri ko'rinadi

@ belgisi inglizcha "at" deb o'qiladi — o'zgaruvchi nomi atIndeks shundan.

Nega nuqtani @ dan keyin qidirdik? Ismning o'zida ham nuqta bor (malika.karimova). Oddiy includes(".") uni ham hisoblab, malika.karimova@mailuz kabi xato manzilni ham "to'g'ri" deb qo'yardi.

email ni "ali@@mail.uz" ga o'zgartirib ko'ring: bittami false bo'ladi. Real loyihalarda email bundan ham qat'iyroq tekshiriladi — buni regex va formalar darslarida ko'ramiz.

11. Real ishda

  • Qidiruv maydoni. Onlayn do'konda "telefon" deb yozsangiz, nomida shu so'z bor mahsulotlar chiqadi. Ichida — toLowerCase() va includes.
  • Telegram bot. Har bir xabar startsWith("/") bilan tekshiriladi: buyruqmi yoki oddiy matnmi.
  • Havolalar. url.startsWith("https://") — sayt manzili xavfsiz ulanishdan foydalanadimi.
  • Fayl yuklash. endsWith(".pdf") — birinchi tez tekshiruv. Serverda fayl ichi alohida tekshiriladi, chunki nomni har kim o'zgartira oladi.

Intervyularda ko'p so'raladigan savollar: "includes va indexOf farqi nima?" va "indexOf natijasini shartga qo'ysa nima bo'ladi?" Endi ikkalasiga ham javob bera olasiz.

Xulosa

  • Metod — qiymatga biriktirilgan tayyor amal: qiymat.nom(argument). Qavssiz u ishlamaydi.
  • includes, startsWith, endsWith — true yoki false qaytaradi.
  • indexOf va lastIndexOf — indeks qaytaradi, topilmasa -1.
  • indexOf natijasini to'g'ridan-to'g'ri shartga qo'ymang: 0 — falsy, -1 — truthy.
  • Hamma qidirish metodlari katta-kichik harfni farqlaydi. Harfdan qat'i nazar qidirish uchun toLowerCase() zanjiri ishlatiladi.
  • search argumentni regex deb tushunadi — oddiy matn uchun indexOf yoki includes ishlating.

Keyingi dars: Kesish, bo'lish va to'ldirish — indeksni topishni o'rgandik, endi shu indeks bo'yicha matndan bo'lak kesib olamiz va matnni bo'laklarga ajratamiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
JavaScript'da matn ichida qidirish: includes, indexOf, startsWith — IlmHamroh