String metodlari

JavaScript string uzunligi

length xususiyati string uzunligini qaytaradi:

Misol

let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let length = text.length;
O‘zingiz sinab ko‘ring »

String belgilarini ajratib olish

String belgilarini ajratib olishning 4 ta usuli mavjud:

  • at(position) metodi
  • charAt(position) metodi
  • charCodeAt(position) metodi
  • Massivlardagi kabi [] orqali xususiyatga murojaat qilish

JavaScript stringlarining charAt() metodi

charAt() metodi stringdagi belgilangan indeksdagi (pozitsiyadagi) belgini qaytaradi:

Misol

let text = "HELLO WORLD";
let char = text.charAt(0);
O‘zingiz sinab ko‘ring »

JavaScript stringlarining charCodeAt() metodi

charCodeAt() metodi stringdagi belgilangan indeksdagi belgi kodini qaytaradi:

Metod UTF-16 kodini qaytaradi (0 dan 65535 gacha bo‘lgan butun son).

Misol

let text = "HELLO WORLD";
let char = text.charCodeAt(0);
O‘zingiz sinab ko‘ring »

JavaScript codePointAt() metodi

Misollar

Stringning birinchi pozitsiyasidagi kod nuqtasi qiymatini oling:

let text = "HELLO WORLD";
let code = text.codePointAt(0);
O‘zingiz sinab ko‘ring »

JavaScript stringlarining at() metodi

ES2022 at() string metodini taqdim etdi:

at() metodi stringdagi belgilangan indeksdagi (pozitsiyadagi) belgini qaytaradi.

at() metodi 2022-yil mart oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Misollar

Ismning uchinchi harfini oling:

const name = "W3Schools";
let letter = name.at(2);
O‘zingiz sinab ko‘ring »

Ismning uchinchi harfini oling:

const name = "W3Schools";
let letter = name[2];
O‘zingiz sinab ko‘ring »

at() metodi JavaScript-ga yangi qo‘shilgan imkoniyatdir.

U manfiy indekslardan foydalanishga imkon beradi, charAt() esa bunga imkon bermaydi.

Misollar

Ism oxiridan beshinchi harfni oling:

const name = "W3Schools";
let letter = name.at(-5);
O‘zingiz sinab ko‘ring »

Bu xuddi shunday:

const name = "W3Schools";
let letter = charAt(myString.length-5);
O‘zingiz sinab ko‘ring »

Brauzerlarda qo‘llab-quvvatlash

at() bu ECMAScript 2022 xususiyatidir.

JavaScript 2022 2022-yil mart oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Chrome
92
Edge
92
Firefox
90
Safari
15.4
Opera
78
2021-yil aprel 2021-yil iyul 2021-yil iyul 2022-yil mart 2021-yil avgust

Xususiyatga murojaat [ ]

Misol

let text = "HELLO WORLD";
let char = text[0];
O‘zingiz sinab ko‘ring »

Xususiyatga murojaat natijasi biroz kutilmagan bo‘lishi mumkin:

  • Bu stringlarni massivlarga o‘xshatadi (lekin ular massiv emas)
  • Hech qanday belgi topilmasa, [ ] undefined qaytaradi, charAt() esa bo‘sh string qaytaradi.
  • Xususiyatga murojaat faqat o‘qish uchun, lekin "sloppy mode"da str[0] = "A" xato bermaydi.

Misol (sloppy mode)

let text = "HELLO WORLD";

// Try to change the first letter to "A"
try {
  text[0] = "A";
} catch(err) {
  text = err.message
}
O‘zingiz sinab ko‘ring »

Misol (strict mode)

"using strict";
let text = "HELLO WORLD";

// Try to change the first letter to "A"
try {
 text[0] = "A";
} catch(err) {
 text = err.message
}
O‘zingiz sinab ko‘ring »

JavaScript stringlarining concat() metodi

concat() ikki yoki undan ortiq stringlarni birlashtiradi:

Misol

let text1 = "Hello";
let text2 = "World";
let text3 = text1.concat(" ", text2);
O‘zingiz sinab ko‘ring »

Plyus operatori o‘rniga concat() metodidan foydalanish mumkin. Quyidagi ikki qator bir xil ishni bajaradi:

Misol

text = "Hello" + " " + "World!";
text = "Hello".concat(" ", "World!");

Barcha string metodlari yangi string qaytaradi. Ular asl stringni o‘zgartirmaydi.

Rasmiy tilda aytganda:

Stringlar o‘zgarmasdir: stringlarni o‘zgartirib bo‘lmaydi, faqat almashtirish mumkin.


String qismlarini ajratib olish

Stringning bir qismini ajratib olishning 3 ta usuli mavjud:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

JavaScript stringlarining slice() metodi

slice() stringning bir qismini ajratib oladi va ajratilgan qismni yangi string sifatida qaytaradi.

Metod ikkita parametr oladi: boshlang‘ich pozitsiya va oxirgi pozitsiya (oxirgi pozitsiya kirmaydi).

Misol

Stringning 7-pozitsiyadan 13-pozitsiyagacha bo‘lgan qismini kesib oling:

let text = "Apple, Banana, Kiwi";
let part = text.slice(7, 13);
O‘zingiz sinab ko‘ring »

JavaScript pozitsiyalarni noldan boshlab sanaydi.

Birinchi pozitsiya 0.

Ikkinchi pozitsiya 1.

Misollar

Agar ikkinchi parametrni tushirib qoldirsangiz, metod stringning qolgan qismini kesib oladi:

let text = "Apple, Banana, Kiwi";
let part = text.slice(7);
O‘zingiz sinab ko‘ring »

Agar parametr manfiy bo‘lsa, pozitsiya String oxiridan boshlab hisoblanadi:

let text = "Apple, Banana, Kiwi";
let part = text.slice(-12);
O‘zingiz sinab ko‘ring »

Ushbu misol stringning -12 pozitsiyadan -6 pozitsiyagacha bo‘lgan qismini kesib oladi:

let text = "Apple, Banana, Kiwi";
let part = text.slice(-12, -6);
O‘zingiz sinab ko‘ring »


JavaScript stringlarining substring() metodi

substring() slice() ga o‘xshaydi.

Farqi shundaki, 0 dan kichik boshlang‘ich va tugatish qiymatlari substring() da 0 sifatida qabul qilinadi.

Misol

let str = "Apple, Banana, Kiwi";
let part = str.substring(7, 13);
O‘zingiz sinab ko‘ring »

Agar ikkinchi parametrni tushirib qoldirsangiz, substring() stringning qolgan qismini kesib oladi.


JavaScript stringlarining substr() metodi

substr() slice() ga o‘xshaydi.

Farqi shundaki, ikkinchi parametr chiqarilgan qismning uzunligini belgilaydi.

Ogohlantirish

substr() metodi eng so‘nggi JavaScript standartida eskirgan, lekin orqaga moslik uchun hali ham ECMAScript spetsifikatsiyasining B ilovasida rasman belgilangan.

Buning o‘rniga substring() yoki slice() dan foydalanish tavsiya etiladi.

Misol

let str = "Apple, Banana, Kiwi";
let part = str.substr(7, 6);
O‘zingiz sinab ko‘ring »

Agar ikkinchi parametrni tushirib qoldirsangiz, substr() stringning qolgan qismini kesib oladi.

Misol

let str = "Apple, Banana, Kiwi";
let part = str.substr(7);
O‘zingiz sinab ko‘ring »

Agar birinchi parametr manfiy bo‘lsa, pozitsiya String oxiridan boshlab hisoblanadi.

Misol

let str = "Apple, Banana, Kiwi";
let part = str.substr(-4);
O‘zingiz sinab ko‘ring »

Katta va kichik harflarga aylantirish

String toUpperCase() yordamida katta harflarga aylantiriladi:

String toLowerCase() yordamida kichik harflarga aylantiriladi:


JavaScript stringlarining toUpperCase() metodi

Misol

let text1 = "Hello World!";
let text2 = text1.toUpperCase();
O‘zingiz sinab ko‘ring »

JavaScript stringlarining toLowerCase() metodi

Misol

let text1 = "Hello World!";       // String
let text2 = text1.toLowerCase();  // text2 is text1 converted to lower
O‘zingiz sinab ko‘ring »

JavaScript stringlarining isWellFormed() metodi

isWellFormed() metodi, agar string to‘g‘ri shakllangan (well-formed) bo‘lsa, true qiymatini qaytaradi.

Aks holda u false qaytaradi.

Agar stringda yolg‘iz surrogatlar bo‘lsa, u to‘g‘ri shakllangan (well-formed) hisoblanmaydi.

Misollar

let text = "Hello world!";
let result = text.isWellFormed();
O‘zingiz sinab ko‘ring »
let text = "Hello World \uD800";
let result = text.isWellFormed();
O‘zingiz sinab ko‘ring »

Yolg‘iz surrogatlar

Yolg‘iz surrogat — bu UTF-16 kodlashda belgilarni ifodalash uchun ishlatiladigan haqiqiy surrogat juftligiga kirmaydigan Unicode surrogat kod nuqtasi.


JavaScript stringlarining toWellFormed() metodi

toWellFormed() string metodi yangi string qaytaradi, bunda barcha "yolg‘iz surrogatlar" Unicode almashtirish belgisi (U+FFFD) bilan almashtiriladi.

Misollar

let text = "Hello World \uD800";
let result = text.toWellFormed();
O‘zingiz sinab ko‘ring »

JavaScript stringlarining trim() metodi

trim() metodi stringning ikkala tomonidagi bo‘shliqlarni olib tashlaydi:

Misol

let text1 = "      Hello World!      ";
let text2 = text1.trim();
O‘zingiz sinab ko‘ring »

JavaScript stringlarining trimStart() metodi

ECMAScript 2019 JavaScript-ga trimStart() string metodini qo‘shdi.

trimStart() metodi trim() kabi ishlaydi, lekin bo‘shliqni faqat string boshidan olib tashlaydi.

Misol

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();
O‘zingiz sinab ko‘ring »

Brauzerlarda qo‘llab-quvvatlash

trimStart() bu ECMAScript 2019 xususiyatidir.

ES2019 2020-yil yanvar oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Chrome
66
Edge
79
Firefox
61
Safari
12
Opera
50
2018-yil aprel 2020-yil yanvar 2018-yil iyun 2018-yil sentabr 2018-yil may

JavaScript stringlarining trimEnd() metodi

ECMAScript 2019 JavaScript-ga trimEnd() string metodini qo‘shdi.

trimEnd() metodi trim() kabi ishlaydi, lekin bo‘shliqni faqat string oxiridan olib tashlaydi.

Misol

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();
O‘zingiz sinab ko‘ring »

Brauzerlarda qo‘llab-quvvatlash

trimEnd() - bu ECMAScript 2019 xususiyati.

ES2019 2020-yil yanvar oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Chrome
66
Edge
79
Firefox
61
Safari
12
Opera
50
2018-yil aprel 2020-yil yanvar 2018-yil iyun 2018-yil sentabr 2018-yil may

JavaScript stringlarini to‘ldirish (padding)

ECMAScript 2017 JavaScript-ga string boshida va oxirida to‘ldirishni qo‘llab-quvvatlash uchun ikkita yangi string metodini qo‘shdi: padStart() va padEnd().


JavaScript stringlarining padStart() metodi

padStart() metodi stringni boshidan to‘ldiradi.

U stringni berilgan uzunlikka yetguncha boshqa string bilan (bir necha marta) to‘ldiradi.

Misollar

Stringni uzunligi 4 ga yetguncha "0" bilan to‘ldiring:

let text = "5";
let padded = text.padStart(4,"0");
O‘zingiz sinab ko‘ring »

Stringni uzunligi 4 ga yetguncha "x" bilan to‘ldiring:

let text = "5";
let padded = text.padStart(4,"x");
O‘zingiz sinab ko‘ring »

padStart() metodi string metodi hisoblanadi.

Sonni to‘ldirish uchun avval uni stringga aylantiring.

Quyidagi misolga qarang.

Misol

let numb = 5;
let text = numb.toString();
let padded = text.padStart(4,"0");
O‘zingiz sinab ko‘ring »

JavaScript stringlarining padEnd() metodi

padEnd() metodi stringni oxiridan to‘ldiradi.

U stringni berilgan uzunlikka yetguncha boshqa string bilan (bir necha marta) to‘ldiradi.

Misollar

let text = "5";
let padded = text.padEnd(4,"0");
O‘zingiz sinab ko‘ring »
let text = "5";
let padded = text.padEnd(4,"x");
O‘zingiz sinab ko‘ring »

padEnd() metodi string metodi hisoblanadi.

Sonni to‘ldirish uchun avval uni stringga aylantiring.

Quyidagi misolga qarang.

Misol

let numb = 5;
let text = numb.toString();
let padded = text.padEnd(4,"0");
O‘zingiz sinab ko‘ring »

JavaScript stringlarining repeat() metodi

repeat() metodi stringning bir nechta nusxasidan iborat stringni qaytaradi.

repeat() metodi yangi string qaytaradi.

repeat() metodi asl stringni o‘zgartirmaydi.

Misollar

Matn nusxalarini yarating:

let text = "Hello world!";
let result = text.repeat(2);
O‘zingiz sinab ko‘ring »
let text = "Hello world!";
let result = text.repeat(4);
O‘zingiz sinab ko‘ring »

Sintaksis

string.repeat(count)

Parametrlar

Parametr Tavsif
countMajburiy. Kerakli nusxalar soni.

Qaytariladigan qiymat

Turi Tavsif
StringNusxalarni o‘z ichiga olgan yangi string.

String tarkibini almashtirish

replace() metodi stringdagi belgilangan qiymatni boshqa qiymat bilan almashtiradi:

Misol

let text = "Please visit Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
O‘zingiz sinab ko‘ring »

replace() metodi o‘zi chaqirilgan stringni o‘zgartirmaydi.

replace() metodi yangi string qaytaradi.

replace() metodi faqat birinchi moslikni almashtiradi

Agar siz barcha mosliklarni almashtirmoqchi bo‘lsangiz, /g bayrog‘i bilan muntazam ifodadan foydalaning. Quyidagi misollarga qarang.

Standart holatda replace() metodi faqat birinchi moslikni almashtiradi:

Misol

let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");

O‘zingiz sinab ko‘ring »

Standart holatda replace() metodi katta-kichik harflarni farqlaydi. MICROSOFT (katta harf bilan) yozish ishlamaydi:

Misol

let text = "Please visit Microsoft!";
let newText = text.replace("MICROSOFT", "W3Schools");

O‘zingiz sinab ko‘ring »

Katta-kichik harflarni farqlamasdan almashtirish uchun /i bayrog‘i (insensitive) bilan muntazam ifodadan foydalaning:

Misol

let text = "Please visit Microsoft!";
let newText = text.replace(/MICROSOFT/i, "W3Schools");

O‘zingiz sinab ko‘ring »

Muntazam ifodalar tirnoqsiz yoziladi.

Barcha mosliklarni almashtirish uchun /g bayrog‘i (global match) bo‘lgan muntazam ifodadan (RegExp) foydalaning:

Misol

let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "W3Schools");

O‘zingiz sinab ko‘ring »

Muntazam ifodalar haqida ko‘proq ma’lumotni JavaScript muntazam ifodalari bo‘limida bilib olasiz.

JavaScript stringlarining replaceAll() metodi

2021-yilda JavaScript replaceAll() String metodini taqdim etdi:

Misol

text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
O‘zingiz sinab ko‘ring »

replaceAll() metodi almashtiriladigan String o‘rniga muntazam ifoda (RegExp) ko‘rsatish imkonini ham beradi.

Agar parametr muntazam ifoda bo‘lsa, global bayroq (g) o‘rnatilishi kerak, aks holda TypeError tashlanadi.

Misol

text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
O‘zingiz sinab ko‘ring »

replaceAll() ES2021 xususiyatidir.

replaceAll() Internet Explorer-da ishlamaydi.


Stringni massivga aylantirish

Agar siz string bilan massiv sifatida ishlamoqchi bo‘lsangiz, uni massivga aylantirishingiz mumkin.

JavaScript stringlarining split() metodi

Stringni split() metodi yordamida massivga aylantirish mumkin:

Sintaksis

text.split("")     // Split on characters
text.split(",")    // Split on commas
text.split(" ")    // Split on spaces
text.split("|")    // Split on pipe

Misollar

Agar parametr ("") bo‘lsa, qaytarilgan massiv alohida belgilardan iborat massiv bo‘ladi:

let text = "Hi fox!";
const myArr = text.split("");
O‘zingiz sinab ko‘ring »

Agar parametr (" ") bo‘lsa, qaytarilgan massiv so‘zlardan iborat massiv bo‘ladi:

let text = "The quick brown fox.";
const myArr = text.split(" ");
O‘zingiz sinab ko‘ring »

Agar ajratuvchi o‘tkazib yuborilsa, qaytarilgan massiv butun stringni [0] indeksida o‘z ichiga oladi.

let text = "The quick brown fox.";
const myArr = text.split();
O‘zingiz sinab ko‘ring »

split("") dan foydalanish xavfli bo‘lishi mumkin

Emoji yoki murakkab belgilarga ega stringlar uchun split("") ishlatish xavfsiz emas.

Bu metod UTF-16 kod birliklari bo‘yicha ajratadi va surrogat juftliklarni buzishi mumkin.

split("") emojilar uchun har doim xavfsiz emas. U ularni o‘rtasidan kesib tashlaydi va buzilgan, yaroqsiz kod fragmentlarini hosil qiladi.

split(" ") odatda so‘zlar uchun xavfsiz, hatto ular ichida emojilar bo‘lsa ham, agar emoji ajratish uchun ishlatilayotgan bo‘sh joyga yopishib turmagan bo‘lsa.

Variantlarning qisqacha mazmuni:

  • text.split("") eng xavfli hisoblanadi. U 4 baytlik emojilarni parchalaydi (masalan, 💩 ['\uD83D', '\uDCA9'] ga aylanadi).
  • Spread [...text] qisman xavfsiz: 💩 yoki 🔥 kabi oddiy emojilar uchun ishlaydi, lekin 👨‍👩‍👧‍👦, 🧑‍⚕️ (shifokor) yoki bayroqlar kabi murakkab emojilarni buzadi.
  • Intl.Segmenter 100% xavfsiz: u har bir emoji, aksent va murakkab belgilar bilan ishlaydi.

Misollar

Spread operatori oilani alohida odamlarga ajratadi.

let text = "👨‍👩‍👧‍👦";
const myArr = text.split("");
O‘zingiz sinab ko‘ring »

Intl.Segmenter ularni xavfsiz tarzda birga saqlaydi.

let text = "👨‍👩‍👧‍👦";

const segmenter = new Intl.Segmenter("en", {granularity:"grapheme"});
const myArr = Array.from(segmenter.segment(text)).map(s => s.segment);
O‘zingiz sinab ko‘ring »

To‘liq JavaScript ma’lumotnomasi

To‘liq tavsiflar va ko‘plab misollar bilan JavaScript’ning barcha xususiyatlari va metodlari bo‘yicha to‘liq ma’lumotnoma uchun quyidagi manzilga o‘ting:

W3Schools’ning to‘liq JavaScript ma’lumotnomasi.

Ushbu ma’lumotnoma 1999-yildan 2026-yilgacha bo‘lgan barcha JavaScript yangilanishlarini o‘z ichiga oladi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!