# JavaScript matn metodlari (string)

> JavaScript'da matn bilan ishlash: uzunlik, bo'lakka ajratish, qidirish, almashtirish va katta-kichik harf. String metodlarini amaliy misollarda o'rganing.

Manba: https://learncode.uz/javascript/matn-metodlari/
Sana: 2026-05-29

Matn dasturda eng ko'p uchraydigan ma'lumot: ism, manzil, xabar, foydalanuvchi
kiritgan qiymat. JavaScript uni qayta ishlash uchun tayyor metodlar beradi.

## Uzunlik va indeks

```js
const text = "JavaScript";

console.log(text.length);
console.log(text[0]);
console.log(text.at(-1));
```

Matn ham [massiv](https://learncode.uz/javascript/massivlar) kabi indekslanadi — sanoq noldan
boshlanadi.

## Katta-kichik harf

```js
const name = "aziz karimov";

console.log(name.toUpperCase());
console.log(name.toLowerCase());
```

Bu taqqoslashda foydali: foydalanuvchi "ALMA" yozsa ham, "alma" bilan
solishtirish mumkin.

```js
const input = "ToShKeNt";
const expected = "toshkent";

console.log(input === expected);
console.log(input.toLowerCase() === expected);
```

## Qidirish

```js
const text = "Bugun havo ochiq va issiq";

console.log(text.includes("havo"));
console.log(text.includes("yomg'ir"));
console.log(text.indexOf("ochiq"));
console.log(text.startsWith("Bugun"));
console.log(text.endsWith("issiq"));
```

`indexOf` topilmasa `-1` qaytaradi.

## Bo'lakka ajratish

```js
const text = "JavaScript";

console.log(text.slice(0, 4));
console.log(text.slice(4));
console.log(text.slice(-6));
```

`slice(boshi, oxiri)` — boshi kiradi, oxiri kirmaydi. Manfiy son oxiridan
sanaydi.

## trim — ortiqcha bo'shliqni olib tashlash

```js
const input = "   aziz@mail.com   ";

console.log("[" + input + "]");
console.log("[" + input.trim() + "]");
```

Foydalanuvchi kiritgan matnni doim `trim()` dan o'tkazing — nusxa-joylashtirishda
bo'shliq tez-tez qo'shilib qoladi.

## replace — almashtirish

```js
const text = "Salom dunyo, salom hammaga";

console.log(text.replace("salom", "xayr"));
console.log(text.replaceAll("salom", "xayr"));
```

`replace` **birinchi** mosni, `replaceAll` **barchasini** almashtiradi.
Katta-kichik harf ajratiladi — shuning uchun bosh harfli "Salom" tegilmadi.

## split — massivga aylantirish

```js
const list = "apple,banan,uzum";
const fruits = list.split(",");

console.log(fruits);
console.log(fruits.length);

const sentence = "Bugun havo ochiq";
console.log(sentence.split(" "));
```

Teskarisi — [massiv darsidagi](https://learncode.uz/javascript/massivlar) `join`:

```js
const fruits = ["olma", "banan", "uzum"];
console.log(fruits.join(" | "));
```

## Birlashtirish va takrorlash

```js
const name = "Aziz";
const lastName = "Karimov";

console.log(name + " " + lastName);
console.log(`${name} ${lastName}`);
console.log("-".repeat(20));
console.log("5".padStart(3, "0"));
```

Template literal (\`...\`) o'qishga qulayroq — [ma'lumot turlari
darsida](https://learncode.uz/javascript/malumot-turlari) ko'rgan edingiz.

> **Matn o'zgarmaydi**
>
> String metodlari asl matnni **o'zgartirmaydi** — ular yangi matn qaytaradi.
> `text.toUpperCase()` chaqirilgach `text` o'zi kichik harfda qolaveradi.
> Natijani saqlash uchun o'zgaruvchiga o'zlashtirish kerak.

```js
let text = "salom";
text.toUpperCase();
console.log(text);

text = text.toUpperCase();
console.log(text);
```

## Amaliy mashq

Matnni qayta ishlang:

1. To'liq ismni `split(" ")` bilan ism va familiyaga ajrating;
2. har birining birinchi harfini `toUpperCase` bilan kattalashtiring;
3. email manzilini `trim` va `toLowerCase` dan o'tkazing;
4. `includes("@")` bilan email to'g'riligini tekshiring;
5. `slice` bilan email'ning `@` dan keyingi qismini oling;
6. `repeat` bilan ajratuvchi chiziq chizing.

5-qadamda `indexOf("@")` natijasini `slice` ga bering.

## Qisqacha xulosa

- `length`, `[0]`, `at(-1)` — uzunlik va belgiga murojaat.
- `toUpperCase`/`toLowerCase` — taqqoslashda foydali.
- `includes`, `indexOf`, `startsWith`, `endsWith` — qidirish.
- `slice` bo'lak oladi, `trim` bo'shliqni olib tashlaydi.
- `replace`/`replaceAll`, `split`/`join` — almashtirish va massivga o'girish.
- Metodlar **yangi matn qaytaradi**, aslini o'zgartirmaydi.

Keyingi darsda [sonlar va Math](https://learncode.uz/javascript/sonlar-math) — hisob-kitobni
ko'ramiz.
