String metodlari
Asosiy string metodlari
JavaScript stringlari primitiv va o‘zgarmasdir: barcha string metodlari asl stringni o‘zgartirmasdan yangi string hosil qiladi.
JavaScript string uzunligi
length xususiyati string uzunligini qaytaradi:
String belgilarini ajratib olish
String belgilarini ajratib olishning 4 ta usuli mavjud:
at(position)metodicharAt(position)metodicharCodeAt(position)metodi- Massivlardagi kabi [] orqali xususiyatga murojaat qilish
JavaScript stringlarining charAt() metodi
charAt() metodi stringdagi belgilangan indeksdagi (pozitsiyadagi) belgini qaytaradi:
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).
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 [ ]
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.
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.
Agar ikkinchi parametrni tushirib qoldirsangiz, substr() stringning qolgan qismini kesib oladi.
Agar birinchi parametr manfiy bo‘lsa, pozitsiya String oxiridan boshlab hisoblanadi.
Katta va kichik harflarga aylantirish
String toUpperCase() yordamida katta harflarga aylantiriladi:
String toLowerCase() yordamida kichik harflarga aylantiriladi:
JavaScript stringlarining toUpperCase() metodi
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:
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.
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.
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 |
| count | Majburiy. Kerakli nusxalar soni. |
Qaytariladigan qiymat
| Turi | Tavsif |
| String | Nusxalarni 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");
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");
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");
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");
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!
