Javascript satrlari bilan manipulyatsiya. JavaScript-dagi satrlar bilan ishlash: string o'zgaruvchilari bilan to'liq mulohaza qilish

Salom! Ushbu qo'llanmada biz JavaScript-ni qanday qilib string va string funktsiyalarini yaratishi mumkinligini ko'rib chiqamiz. Asosan, JavaScript-da, har qanday matn o'zgaruvchisi mag'lubiyatdir, chunki JavaScript kuchli yozilgan dasturlash tili emas (ma'lumotlar turlari haqida o'qing). String klassi satrlar bilan ishlash uchun ishlatiladi:

Var name1 \u003d "Tommy";

Shunday qilib, String konstruktoridan foydalaning:

Var name1 \u003d yangi String ("Tommy");

Birinchi usul, asosan, ixchamroq bo'lgani uchun ishlatiladi.

String satrlari bilan ishlash klassi o'z arsenalida juda ko'p xususiyatlar va funktsiyalar to'plamiga ega, ular yordamida siz satrlar bilan turli xil manipulyatsiyalarni amalga oshirishingiz mumkin.

Chiziq uzunligi

Uzunlik xususiyati ip uzunligini belgilashga imkon beradi. Ushbu xususiyat raqamni qaytaradi:

Var salom1 \u003d "salom dunyo"; document.write ("Satrda" "+ salom +" "" + salom1. uzunlik + "belgilar");

Qatorda qidirish

Satrda ma'lum bir substringni topish uchun indexOf () (pastki satrning birinchi paydo bo'lish indeksini qaytaradi) va lastIndexOf () (pastki satrning oxirgi paydo bo'lish indeksini qaytaradi) funktsiyalari. Ushbu funktsiyalar ikkita dalilni oladi:

  • Topiladigan substring
  • Ipdagi substringni qaysi belgidan qidirish kerakligini ko'rsatadigan ixtiyoriy argument

Ushbu ikkala funktsiya qatorni substring boshlanadigan belgining ko'rsatkichi bo'lgan raqamni qaytaradi. Agar substring topilmasa, -1 raqami qaytariladi. Shuning uchun, bu funktsiyalar mantiqiy operatorlarda qo'llaniladi, chunki qoida tariqasida faqat satrda substring mavjudligini yoki yo'qligini tekshirishingiz kerak, keyin bu holda ushbu funktsiyalar natijasi -1 bilan taqqoslanadi.

Var str1 \u003d "Salom Vasya!"; var podstr \u003d "Petya"; if (str.indexOf (podstr) \u003d\u003d -1) (document.write ("Substring not found.");) else (document.write ("Substring found.");)

Masalan, "Petya" qatori "Vasya salom!" Satrida mavjud bo'lmaganligi sababli, "Substring not found" xabari ko'rsatiladi.

Substring tanlovi

Ipdan pastki qatorni kesish uchun substr () va substring () kabi funktsiyalar qo'llaniladi.

Substring () funktsiyasi 2 ta argumentni oladi:

  • satrdagi belgining boshlang'ich pozitsiyasi, undan ip kesiladi
  • ipni qirqish uchun oxirgi holat
var hello1 \u003d "salom dunyo. Alvido olam"; var world1 \u003d salom1.substring (7, 10); // 7-dan 10-gacha bo'lgan index.write (world1); // dunyo

Substr () funktsiyasi, shuningdek, birinchi parametr sifatida pastki satrning boshlang'ich indeksini, ikkinchisi sifatida uzunlikning uzunligini oladi:

Var hello1 \u003d "salom dunyo. Alvido olam"; var bye1 \u003d hello1.substr (12, 2); document.write (bye1); // Oldin

Va agar ikkinchi parametr ko'rsatilmagan bo'lsa, u holda chiziq oxirigacha qisqartiriladi:

Var hello1 \u003d "salom dunyo. Alvido olam"; var bye1 \u003d hello1.substr (12); document.write (xayr1); // dunyo bilan xayr

Harflarni boshqarish

Harflarning holatini o'zgartirish uchun, ya'ni barcha harflarni kichik yoki katta qilish uchun to (LowerCase ()) funktsiyalaridan foydalaning (belgilarni kichik harfga aylantirish uchun, ya'ni barcha harflar kichik bo'ladi) va toUpperCase () (belgilarni katta harfga, ya'ni barcha harflarga aylantirish uchun) ajoyib bo'ladi).

Var salom1 \u003d "Salom Jim"; document.write (salom1.toLowerCase () + "
"); // salom jim document.write (salom1.toUpperCase () +"
"); // SALOM JIM

Belgini indeksiga ko'ra olish

Satrda indeksiga ko'ra ma'lum bir belgini topish uchun charAt () va charCodeAt () funktsiyalaridan foydalaniladi. Ushbu ikkala funktsiya argument sifatida belgi indeksini oladi:

Var salom1 \u003d "Salom Jim"; document.write (salom1.charAt (3) + "
"); // document.write (hello1.charCodeAt (3) +" da)
"); //1080

Ammo charAt () funktsiyasi faqat o'z ishi natijasida belgini o'zi qaytaradigan bo'lsa, charCodeAt () funktsiyasi ushbu belgining raqamli Unicode kodini qaytaradi.

Bo'sh joylarni olib tashlash

Trim () funktsiyasi stokdagi bo'sh joylarni olib tashlash uchun ishlatiladi:

Var salom1 \u003d "Salom Jim"; var beforeLen \u003d salom1.length; salom1 \u003d salom1.trim (); var afterLen \u003d salom1.length; document.write ("Qator uzunligi oldin:" + beforeLen + "
"); // 15 document.write (" Keyingi qator: "+ afterLen +" dan keyin "
"); //10

Birlashtiruvchi torlar

Concat () funktsiyasi ikkita qatorni birlashtirishga imkon beradi:

Var salom1 \u003d "Salom"; var world1 \u003d "Vasya"; salom1 \u003d salom1.concat (dunyo1); document.write (salom); // Salom, Vasya

Substringni almashtirish

Replace () funktsiyasi bir qatorni boshqasiga almashtirishga imkon beradi:

Var salom1 \u003d "Xayrli kun"; salom1 \u003d salom1. almashtirish ("kun", "oqshom"); document.write (salom1); //Hayrli kech

Funktsiyaning birinchi argumenti qaysi substringni almashtirish kerakligini, ikkinchi argument esa qaysi haqiqiy substringni almashtirish kerakligini ko'rsatadi.

Bir qatorga qatorni ajratish

Split () funktsiyasi ma'lum bir ajratuvchi yordamida qatorni qatorlarga ajratishga imkon beradi. Shunday qilib, siz ushbu usulga o'tadigan mag'lubiyatdan foydalanishingiz mumkin:

Var mes \u003d "Bugun ob-havo ajoyib bo'ldi"; var stringArr \u003d mes.split (""); uchun (var str1 in stringArr) document.write (stringArr + "
");

Natija

Satrlarni oddiy o'zgaruvchidan foydalanib yaratish mumkin, shunchaki unga matn qo'yish yoki String sinfidan foydalanish mumkin.

Ip uzunligini bilish uchun uzunlik xususiyatidan foydalaning.

Iplar harflar bilan taqqoslanadi. Shuning uchun, agar satrda raqam bo'lsa, unda bunday raqamlarni to'g'ri taqqoslash mumkin emas, buning uchun satrni turga o'tkazish kerak raqam (Raqam sinfi haqida o'qing).

Shuningdek, satrlarni taqqoslashda harflar holatini ko'rib chiqing. Bosh harf kamroq kichik va e harfi umuman alifbo tashqarisida.

Vazifalar

Ipdagi oxirgi harfning holatini o'zgartirish

Oxirgi harfning holatini katta qilib o'zgartiradigan lastLetterStr (str) funktsiyasini yozing.

Spam-tekshiruv

Ipning pastki satrlarini tekshiradigan provSpam (str) funktsiyasini yozing: "spam", "sex", "xxx". Va agar substring ma'lumotlari bo'lsa true, aks holda false.

Raqamni toping

Agar satrda raqam bo'lsa va funktsiya raqamni qaytarishi kerak bo'lsa, qatordan raqamni oladigan extrNum (str) funktsiyasini yozing. Masalan, 120-qatordan qaytariladigan "120 UAH" qatori mavjud.

Va pinning uchun, JavaScript-da satrlar bilan ishlash bo'yicha videoni tomosha qiling.

Qatorlarni qayta ishlash funktsiyalari va konstruktsiyalaridan foydalanishning semantik "ramkasi" sifatida ular ma'lumotni qayta ishlash jarayonlarini uning semantik tarkibiga qarab dasturlash uchun alohida qiziqish uyg'otadi. Tilda JavaScript funktsiyalari satrlar bilan ishlash sizning o'zingizning semantik tuzilmalaringizga birlashtirilishi mumkin, bu kodni soddalashtiradi va rasmiylashtiradi mavzu maydoni vazifalar.

Klassik versiyada axborotni qayta ishlash, avvalambor, string funktsiyalari. Tilning har bir funktsiyasi va tuzilishi JavaScript sintaksisida va semantikasida o'ziga xos xususiyatlarga ega. Bu erda satrlar bilan ishlash usullari o'ziga xos uslubga ega, ammo oddiy foydalanishda bu oddiy sintetik tarkibdagi sintaksis: qidirish, almashtirish, qo'shish, ajratish, saqlash, o'zgartirish ...

Satr o'zgaruvchilarining tavsifi

Satrni e'lon qilish uchun qurilishdan foydalaning var. Siz darhol uning qiymatini belgilashingiz yoki algoritmni bajarish paytida shakllantirishingiz mumkin. Ip uchun bitta yoki ikkita tirnoqlardan foydalanishingiz mumkin. Agar unda tirnoq belgisi bo'lishi kerak bo'lsa, "\\" belgisi bilan qochish kerak.

Belgilangan satr ichki juft tirnoqlardan qochishni talab qiladi. Xuddi shu tarzda, bitta tirnoq bilan belgilangan bittasi ichida bitta tirnoq borligi uchun juda muhimdir.

IN ushbu misol "str_dbl" qatorida siz foydalanishingiz mumkin bo'lgan foydali maxsus belgilar ro'yxati keltirilgan. Bunday holda, "\\" belgisining o'zi qochib ketadi.

Ip har doim massivdir

JavaScript ko'p jihatdan satrlar bilan ishlashi mumkin. Til sintaksisida ko'plab imkoniyatlar mavjud. Avvalo, siz buni hech qachon unutmasligingiz kerak (berilgan tavsiflar doirasida):

  • str_isV \u003d\u003e "V";
  • str_chr \u003d\u003e "" ";
  • str_dbl \u003d\u003e "a".

Ya'ni satrning belgilarini har biri bilan massiv elementlari sifatida olish mumkin maxsus belgi bitta belgi. Qochish bu sintakis elementidir. Hech qanday "ekran" haqiqiy chiziqqa to'g'ri kelmaydi.

CharAt () funktsiyasidan foydalanish shunga o'xshash ta'sirga ega:

  • str_isV.charAt (3) \u003d\u003e "V";
  • str_chr.charAt (1) \u003d\u003e "" ";
  • str_dbl.charAt (5) \u003d\u003e "a".

Dasturchi har qanday variantni ishlatishi mumkin.

Stringning asosiy funktsiyalari

JavaScript boshqa tillarga qaraganda bir oz farq qiladi. Funktsiya nomi o'zgaruvchi nomiga (yoki to'g'ridan-to'g'ri mag'lubiyatga) nuqta orqali yoziladi. Odatda, mag'lubiyat funktsiyalari til sintaksisining uslubida usullar deb nomlanadi, ammo birinchi so'z ko'proq tanishdir.

Ipning eng muhim usuli (aniqrog'i, xususiyat) uning uzunligidir.

  • var xStr \u003d str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

Natija: yuqoridagi tavsif bo'yicha 11/12/175.

String funktsiyalarining eng muhim juftligi bu qatorni elementlar qatoriga ajratish va qatorni qatorga birlashtirish:

  • bo'linish (s [, l]);
  • qo'shilish (lar).

Birinchi holda, mag'lubiyat "s" ajratuvchi belgisi bilan elementlar qatoriga bo'linadi, bunda elementlar soni "l" qiymatidan oshmaydi. Agar miqdor ko'rsatilmagan bo'lsa, butun satr bo'linadi.

Ikkinchi holda, elementlarning massivi ko'rsatilgan ajratuvchi orqali bir qatorga birlashtiriladi.

Ushbu juftlikning ajoyib xususiyati: bo'linishni bitta separatorda, ikkinchisida esa birlashtirish mumkin. Shu nuqtai nazardan, JavaScript-da, satrlar bilan ishlash til sintaksisidan "tashqariga chiqarilishi" mumkin.

Klassik string funktsiyalari

Umumiy mag'lubiyatga ishlov berish funktsiyalari:

  • qidirmoq;
  • namuna;
  • almashtirish;
  • transformatsiya.

Uslublar bilan ifodalanadi: indexOf (), lastIndexOf (), toLowerCase (), toUpperCase (), concan (), charCodeAt () va boshqalar.

JavaScript-da satrlar bilan ishlash juda ko'p funktsiyalar bilan ifodalanadi, lekin ular bir-birini takrorlaydi yoki eski algoritmlar va moslik uchun qoldiriladi.

Masalan, concat () usulidan foydalanish yaxshi, lekin yozish osonroq:

  • str \u003d str1 + str2 + str3;

CharAt () funktsiyasidan foydalanish ham mantiqan to'g'ri keladi, lekin charCodeAt () dan foydalanish haqiqiy amaliy ahamiyatga ega. Xuddi shu tarzda, JavaScript uchun satr tanaffuslari alohida ma'noga ega: ekranda ko'rsatish kontekstida, masalan, alert () xabarida bu "\\ n", sahifa tarkibini yaratishda ""
". Birinchi holda bu shunchaki belgi, ikkinchisida esa bu belgilar qatori.

Qatorlar va muntazam iboralar

JavaScript-da satrlar bilan ishlash mexanizmni o'z ichiga oladi doimiy iboralar... Bu brauzerda serverga qaytmasdan murakkab izlash, tanlash va mag'lubiyatga o'zgartirishlarni amalga oshirishga imkon beradi.

Usul o'yin topadi va almashtirish topilgan gugurtni kerakli qiymat bilan almashtiradi. Muntazam iboralar JavaScript tomonidan amalga oshiriladi yuqori daraja, mohiyatan murakkab bo'lib, dasturning o'ziga xos xususiyatlari tufayli ular og'irlik markazini serverdan mijozning brauzeriga o'tkazadilar.

Usullarni qo'llashda mos kelish, qidirishva almashtirish boshlang'ich parametrlari va qidirish satrlarining barcha qabul qilinadigan qiymatlari bo'yicha sinovlarga nafaqat e'tibor berish kerak, balki brauzerdagi yukni ham baholash kerak.

Muntazam ifoda namunalari

Iplarni qayta ishlash uchun odatiy iboralardan foydalanish juda keng, ammo ishlab chiquvchidan juda ehtiyotkorlik va e'tibor talab qiladi. Muntazamlik, birinchi navbatda, foydalanuvchi formasini maydonlarda kiritishni tekshirishda qo'llaniladi.

Bu erda kiritishda butun son (schInt) yoki haqiqiy son (schReal) mavjudligini tekshiradigan funktsiyalar mavjud. Quyidagi misol faqat to'g'ri belgilarni tekshirish orqali satrlarni qanchalik samarali ishlashini ko'rsatadi: schText - bu faqat matn, schMail - bu elektron pochta manzili.

Shuni yodda tutish kerakki, JavaScript-dagi belgilar va satrlar mahalliy tilga, ayniqsa, kirill bilan ishlashda qo'shimcha e'tibor talab qiladi. Ko'pgina hollarda, ularning ma'nosini emas, balki haqiqiy belgilar kodlarini ko'rsatish maqsadga muvofiqdir. Bu birinchi navbatda rus harflariga tegishli.

Shuni ta'kidlash kerakki, har doim ham vazifani belgilanganidek bajarish kerak emas. Xususan, tamsayılar va haqiqiy sonlarni tekshirish bo'yicha: siz klassik mag'lubiyat usullari bilan emas, balki oddiy sintaksis konstruktsiyalari bilan erishishingiz mumkin.

Ob'ektga yo'naltirilgan satrlar

JavaScript-da satrlar bilan ishlash juda ko'p funktsiyalar bilan ifodalanadi. Ammo bu ularni asl shaklida ishlatish uchun jiddiy sabab emas. Funktsiyalarning sintaksis va sifati beg'ubor, ammo bu yagona echimdir.

String funktsiyalaridan har qanday foydalanish ma'lumotlar, algoritmning ko'lami va o'ziga xos maqsadi bilan aniqlanadigan haqiqiy ma'noni qayta ishlashni nazarda tutadi.

Ideal echim har doim ma'lumotlarni o'z ma'nosida talqin qilishdir.

Har bir parametrni ob'ekt sifatida taqdim etish orqali siz u bilan ishlash funktsiyalarini shakllantirishingiz mumkin. Bu har doim belgilarni qayta ishlash bilan bog'liq: raqamlar yoki satrlar - bu ma'lum bir tarzda tashkil etilgan belgilar ketma-ketligi.

Umumiy algoritmlar mavjud, xususiylar ham bor. Masalan, familiya yoki uy raqami - bu satrlar, ammo agar birinchi holda faqat ruscha harflarga ruxsat berilsa, ikkinchi holda raqamlarda ruscha harflar qabul qilinadi va chiziq bilan ajratilgan defis yoki indekslar bo'lishi mumkin. Ko'rsatkichlar alfavit yoki raqamli bo'lishi mumkin. Uyda binolar bo'lishi mumkin.

Barcha vaziyatlarni har doim ham oldindan bilish mumkin emas. Bu dasturlashda muhim nuqta. Noyob algoritm takomillashtirishni talab qilmaydi va aksariyat hollarda funksionallikni muntazam ravishda sozlash zarur.

Ob'ekt shaklida qayta ishlangan chiziqli ma'lumotlarning rasmiylashtirilishi kodning o'qilishini yaxshilaydi, uni semantik ishlov berish darajasiga etkazish imkonini beradi. Bu turli xil funktsionallik darajasi va sezilarli darajada eng yaxshi sifat ishlab chiqilgan algoritmning katta ishonchliligi bilan kod.

Ushbu maqola nima ekanligini muhokama qiladi satrlari JavaScript-da va ular bilan ishlash usullari.

Satrlar "JavaScript", "Salom dunyo! "," Http://www.quirksmode.org "yoki hatto" 14 ". JavaScript-da dasturlash uchun siz satrlar nima ekanligini va ular bilan qanday ishlashni bilishingiz kerak, chunki siz ularni tez-tez ishlatishingiz kerak bo'ladi. URL-sahifalar, CSS parametrlari qiymatlari va formani kiritish elementlari kabi ko'p narsalar - bu satrlar.

Avval tushuntirishga harakat qilaman torlar bilan ishlashkeyin - JavaScript-dagi farq. Agar siz boshqa tilda dasturlash tajribangiz bo'lsa ham, iltimos, ushbu qismni diqqat bilan o'qing. Oxir-oqibat, men eng muhimi haqida gaplashaman JavaScript-dagi satrlar.

String asoslari

Keling, JavaScript-dagi satrlar bilan ishlash asoslarini ko'rib chiqamiz.

Tirnoqlardan foydalanish

Qachon e'lon qilsangiz satrlari JavaScript-da yoki ular bilan ishlashda ularni har doim bitta yoki ikkita tirnoq bilan qo'shib qo'ying. Bu brauzerga mag'lubiyat bilan ishlashini aytadi. O'zingizning kodingizda tirnoqlardan foydalanishni aralashtirmang, agar siz bitta tirnoq bilan satrni boshlasangiz va ikkita tirnoq bilan tugatsangiz, JavaScript nima demoqchi ekaningizni tushunmaydi. Odatda, men satrlar uchun bitta tirnoqlardan foydalanaman, chunki HTML uchun ikkilangan va JavaScript uchun bitta tirnoqlardan foydalanishni tanladim. Albatta, siz hamma narsani boshqacha qilishingiz mumkin, ammo men sizga o'zingiz uchun shunga o'xshash qoidani ishlab chiqishingizni maslahat beraman.

Keling, maqola davomida foydalanadigan ikkita satrni tasavvur qilaylik:

Var a \u003d "Salom dunyo!"; var b \u003d "Men talabaman.";

Endi biz "a" va "b" ikkita o'zgaruvchini e'lon qildik va ularga qator qiymatlarini berdik. Shundan so'ng biz ular bilan ishlashimiz mumkin, lekin avval bitta masalani hal qilamiz: aytaylik, men yozdim:

Var b \u003d "Men" men talabaman. ";

Satr qo'shimcha bitta taklifni o'z ichiga oladi va JavaScript bu satrni to'liq deb hisoblaydi va xato xabarini chiqaradi, keyin nima bo'lishini bilmaydi. Shuning uchun sizga kerak tirnoqdan qochish, brauzerga buni chiziqning oxiri emas, balki belgi sifatida qarashini ayt. Bu tirnoq oldida teskari chiziq bilan amalga oshiriladi:

Var b \u003d "Men o'quvchiman.";

Ikkita tirnoqni qochib ketmasdan satrga kiritishingiz mumkinligiga e'tibor bering. Satrning boshi va oxiri sifatida bitta tirnoqlardan foydalanganingiz uchun,

Var b \u003d "I \\" m a "student". ";";

muammosiz qabul qilinadi. Ikki tirnoq avtomatik ravishda buyruq emas, balki mag'lubiyatning bir qismi sifatida ko'rib chiqiladi.

Ichki funktsiyalar

Iplar aniqlangandan so'ng siz ulardan foydalanishni boshlashingiz mumkin. Masalan, siz qila olasiz bitta ipni boshqasiga biriktiring, yoki "b" qatoridan ikkinchi to'rtinchi belgilardan iborat substringni oling va ularni "a" qatorining o'rtasiga kiriting yoki qaysi belgi "a" da o'n ikkinchi, "b" qatorida nechta belgi borligini, ular tarkibida harf mavjudligini aniqlang " q "va boshqalar.

Buning uchun har bir satr uchun JavaScript oldindan belgilab qo'ygan ichki funktsiyalardan foydalanishingiz mumkin. Ulardan biri - "uzunlik" - ipning uzunligini qaytaradi. Ya'ni, "Salom dunyo!" Uzunligini hisoblamoqchi bo'lsangiz, yozing:

Var c \u003d "Salom dunyo!". Uzunlik;

Ilgari biz ushbu qatorni "a" o'zgaruvchiga berdik. Shunday qilib, siz "a" o'zgaruvchini mag'lubiyatga aylantirdingiz, shuning uchun "uzunlik" funktsiyasi unga ham tegishli bo'lib, quyidagi operatsiya xuddi shu natijani beradi:

Var c \u003d a. uzunlik;

Har qanday satr uchun "uzunlik" dan foydalanishingiz mumkinligini unutmang - bu o'rnatilgan funktsiya. Siz .. qila olasiz; siz ... mumkin har qanday ipning uzunligini hisoblang, masalan: "location.href" yoki "document.title" yoki siz e'lon qilgan.

Quyida men keng tarqalgan o'rnatilgan usullar va xususiyatlar ro'yxatini taqdim etaman.

Iplar va raqamlar

Ba'zi dasturlash tillari u bilan boshqa biror narsa qilishdan oldin o'zgaruvchining raqam yoki satr ekanligini aniqlashni talab qiladi. JavaScript-ni satrlar va raqamlar o'rtasidagi farq osonroq. Aslida, siz qatorlarga raqamlarni qo'shishingiz mumkin:

Var c \u003d a + 12;

Ba'zi dasturlash tillarida bunday qatorni qayta ishlash xatoga olib keladi. Shunga qaramay, "a" - bu satr, "12" - bu raqam. Biroq, JavaScript "12" ham mag'lubiyatga ega deb hisoblab, muammoni hal qilishga urinadi. Shunday qilib, "c" "Salom dunyo! 12" ga aylanadi. Agar siz "+" ni satr va raqam bilan ishlatsangiz, JavaScript raqamdan qator yasashga harakat qiladi. Agar siz matematikadan matematikadan foydalansangiz, JavaScript uni raqamga o'tkazishga harakat qiladi. Agar satrni raqamga aylantirishning imkoni bo'lmasa (masalan, unda harflar borligi sababli), JavaScript NaN - "Raqam emas, raqam emas" ni qaytaradi.

Va nihoyat, JavaScript-da butun sonlar va suzuvchi nuqta raqamlari o'rtasida farq yo'q.

Raqam -\u003e string

Uchun raqamni mag'lubiyatga aylantirish kiriting:

Var c \u003d (16 * 24) / 49 + 12; d \u003d c.toString ();

Shundan so'ng, siz "d" ga barcha satr usullarini qo'llashingiz mumkin, va "c" da raqam mavjud.

String -\u003e raqam

Agar siz qatorni raqamga aylantirmoqchi bo'lsangiz, avval uning faqat 0-9 belgilaridan iborat ekanligiga ishonch hosil qiling. Buning uchun men shunchaki satrni 1 ga ko'paytiraman.

Var c \u003d "1234"; d \u003d c * 1;

Ko'paytirish faqat raqamlar bilan amalga oshirilganligi sababli, agar imkon bo'lsa, JavaScript qatorni raqamga o'zgartiradi. Aks holda, natijada NaN bo'ladi.

Agar yozsangiz:

Var c \u003d "1234"; d \u003d c + 0;

Natijada "12340" paydo bo'ldi, chunki JavaScript "+" yordamida satrlarni birlashtirmaydi, balki ularni birlashtiradi.

String xususiyatlari va usullari

Xo'sh, iplar bilan nima qilishimiz mumkin? Birlashtirish - bu alohida holat, ammo boshqa barcha buyruqlar (usullar) konstruktsiya yordamida istalgan satrda ishlatilishi mumkin:

String_name.method ();

Satrlar bilan ishlash uchun o'rnatilgan JavaScript usullarining ro'yxati

Birlashtirish - qatorlarni birlashtirish

Birinchidan, siz satrlarni bir-biriga qo'shib quyidagi tarzda biriktirishingiz mumkin:

Document.write (a + b);

natija bo'ladi: "Salom dunyo! Men talabaman. ". Lekin, albatta, siz jumlalar orasidagi bo'shliqni xohlaysiz. Buning uchun kodni quyidagicha yozing:

Document.write (a + "" + b);

Shunday qilib, biz uchta qatorni birlashtiramiz: "a", "" "(bitta bo'sh joy) va" b ", natijada quyidagilarga erishamiz:" Salom dunyo! Men talabaman. "

Hatto raqamlardan yoki hisob-kitoblardan ham foydalanishingiz mumkin, masalan:

Document.write (a + 3 * 3 + b);

Endi biz "a" qatorini birlashtiramiz, so'ngra "3 * 3" ifodasining natijasi, chiziq sifatida muomala qilinadi va "b" quyidagicha olinadi: "Salom dunyo! 9 Men talabaman. "

Qo'shimchani ishlatishda ehtiyot bo'ling. Jamoa

Document.write (a + 3 + 3 + b);

4 qatorni birlashtiradi: "a", "3", "3" va "b", chunki "+" bu holda "qo'shish" emas, balki "tutashgan chiziqlar" degan ma'noni anglatadi va natijada: "Salom dunyo! talaba. ". Agar satr yaratishdan oldin 3 va 3 ni qo'shishni istasangiz, qavslardan foydalaning.

Document.write (a + (3 + 3) + b);

Ushbu ibora "3 + 3" va "b" ifodalarining natijasi bo'lgan "a" qatorini birlashtiradi, natijada: "Salom dunyo! 6 Men talabaman. ".

indexOf

Keng qo'llaniladigan ichki usullardan biri "indexOf" dir. Har bir belgi satrdagi pozitsiyasining sonini o'z ichiga olgan o'z indeksiga ega. E'tibor bering, birinchi belgining ko'rsatkichi 0, ikkinchisining qiymati 1 va hokazo.Shunday qilib, "a" atamasidagi "w" belgisi ko'rsatkichi 6 ga teng.

"IndexOf" yordamida biz belgi indeksini bosib chiqarishimiz mumkin. Satr nomidan keyin ".indexOf (" ")" yozing va tirnoq orasiga izlayotgan belgini kiriting. Masalan:

Var a \u003d "Salom dunyo!"; document.write (a.indexOf ("w"));

6. qaytib keladi. Agar belgi bir necha marta takrorlansa, bu usul birinchi hodisani qaytaradi. Ya'ni

Document.write (a.indexOf ("o"));

4 qaytaradi, chunki u mag'lubiyatdagi birinchi "o" indeksidir.

Bundan tashqari, belgilar kombinatsiyasini qidirishingiz mumkin. (Albatta, bu ham mag'lubiyatdir, lekin chalkashliklarga yo'l qo'ymaslik uchun, men buni bunday deb atamayman). "IndexOf" kombinatsiyaning birinchi belgisi o'rnini qaytaradi. Masalan:

Document.write (a.indexOf ("o w"));

yana 4 ga qaytadi, chunki bu "o" indeks.

Bundan tashqari, ma'lum bir indeksdan keyin belgini izlash mumkin. Agar kirsangiz

Document.write (a.indexOf ("o", 5));

keyin 5 indeksli belgidan keyin birinchi "o" indeksini oling (bu bo'sh joy), ya'ni natija - 7 bo'ladi.

Agar satrda belgi yoki kombinatsiya ko'rinmasa, "indexOf" "-1" ga qaytadi. Aslida, bu "indexOf" uchun eng ommabop foydalanish: belgilarning aniq kombinatsiyasi mavjudligini tekshirish. Bu brauzerni belgilaydigan skriptning asosiy qismidir. IEni aniqlash uchun siz quyidagi qatorni olasiz:

Navigator.userAgent;

va unda "MSIE" mavjudligini tekshiring:

Agar (navigator.userAgent.indexOf ("MSIE")! \u003d -1) (// Internet Explorer bilan har qanday harakat)

Agar "MSIE" indeksi "-1" bo'lmasa (agar "MSIE" satrning biron bir joyida bo'lsa), u holda joriy brauzer IE hisoblanadi.

lastIndexOf

Belgilar yoki kombinatsiyalarning oxirgi marta paydo bo'lishini qaytaradigan "lastIndexOf" usuli ham mavjud. U "indexOf" ning teskarisini ishlaydi. Jamoa

Var b \u003d "Men talabaman."; document.write (b.lastIndexOf ("t"));

qaytaradi 13, chunki bu satrdagi oxirgi "t" indeksidir.

charAt

"CharAt" usuli belgini belgilangan pozitsiyada qaytaradi. Masalan, siz kirganingizda

Var b \u003d "Men talabaman."; document.write (b.charAt (5));

natija "a" dir, chunki u oltinchi belgidir (birinchi belgining ko'rsatkichi 0 dan boshlanishini unutmang).

uzunlik

Uzunlik usuli ipning uzunligini qaytaradi.

Var b \u003d "Men talabaman."; document.write (uzunlik);

"15" ga qaytadi. Ip uzunligi oxirgi belgi indeksidan 1 uzunroq.

split

"Split" - bu ma'lum bir belgilar asosida satrni ajratish imkonini beradigan maxsus usul. Bu natija oddiy o'zgaruvchiga emas, balki qatorga kiritilishi kerak bo'lganda ishlatiladi. Keling, "b" ni bo'shliqlarga ajratamiz:

Var b \u003d "Men talabaman." var temp \u003d yangi Array (); temp \u003d b.split ("");

Endi mag'lubiyat "temp" qatoriga joylashtirilgan 4 ta satrga bo'lingan. Bo'shliqlarning o'zi yo'qoldi.

Temp \u003d "I"; temp \u003d "am"; temp \u003d "a"; temp \u003d "student";

Ipning bir qismini tanlash uchun substring usuli qo'llaniladi. Sintaksis usuli: ".substring (first_index, last_index)". Masalan:

Var a \u003d "Salom dunyo!"; document.write (a.substring (4, 8));

"o wo" ni qaytaradi, birinchi "o" dan (indeks 4) ikkinchisiga (indeks 7). E'tibor bering, "r" (indeks 8) substringning bir qismi emas.

Siz shuningdek yozishingiz mumkin:

Var a \u003d "Salom dunyo!"; document.write (a.substring (4));

Bu butun dunyo "ey dunyo!" ", 4-indeksli belgidan boshlab satr oxirigacha.

substr

Biroz boshqacha ishlaydigan "substr" usuli ham mavjud. Bu indeks raqamini ikkinchi argument sifatida emas, balki belgilar sonidan foydalanadi. Ya'ni

Document.write (a.substr (4, 8));

8 belgini qaytaradi, belgidan boshlab 4 ko'rsatkichi bilan ("o"), ya'ni natija: "o dunyo!" "

toLowerCase va toUpperCase

Nihoyat, ba'zida sizga foydali bo'lishi mumkin bo'lgan ikkita usul mavjud: "toLowerCase" butun satrni kichik harfga, "toUpperCase" esa katta harfga o'zgartiradi.

Var b \u003d "Men talabaman."; document.write (b.toUpperCase ());

Natijada, biz “Men talaba bo'laman. ".

Satr - bu harflar, raqamlar va boshqa belgilarni o'z ichiga olishi mumkin bo'lgan bir yoki bir nechta belgilar ketma-ketligi. JavaScript-da, bu eng oddiy o'zgarmas ma'lumotlar turi.

Satrlar sizga matnni namoyish qilish va ular bilan ishlashga imkon beradi va matn Internetdagi aloqa va aloqa qilishning asosiy usuli hisoblanadi. Shuning uchun satrlar dasturlashning asosiy tushunchalaridan biridir.

Ushbu o'quv qo'llanmada qanday qilib satrlarni yaratish va ko'rishni, satrlarni birlashtirishni va ularni o'zgaruvchilarda saqlashni o'rgatadi. Shuningdek, siz JavaScript-dagi tirnoq, apostrof va yangi qatorlardan foydalanish qoidalari bilan tanishasiz.

Ip yaratish va ko'rish

JavaScript-da satrlarni yaratishning uchta usuli mavjud: siz ularni bitta tirnoq (‘), ikkita tirnoq (“) yoki orqa tirnoq (`) bilan yozishingiz mumkin. Garchi ba'zida barcha uchta satrlar skriptlarda ko'rinadigan bo'lsa ham, bitta satr ichida bitta turdagi tirnoqlardan foydalanishingiz kerak.

Bir tirnoqli va ikkita tirnoqli satrlar aslida bir xil narsadir. Bir yoki boshqa turdagi tirnoqlardan foydalanishga oid konvensiyalar mavjud emas, lekin odatda bitta dastur turidan dastur skriptlarida doimiy ravishda foydalanish tavsiya etiladi.

"Ushbu satrda bitta tirnoq ishlatiladi.";
"Ushbu satrda ikkita tirnoq ishlatiladi.";

Uchinchi va eng yangi usul mag'lubiyat yaratish shablon literal deyiladi. Shablon literallari orqaga qarab yozilgan (shuningdek, katta urg'u deb ataladi) va bir nechta qo'shimcha funktsiyalarga ega oddiy qatorlar singari ishlaydi, biz ularni ushbu maqolada ko'rib chiqamiz.

`Ushbu satrda backticks ishlatiladi. ';

Chiziq chiqishini ko'rishning eng oson usuli bu konsolga console.log () yordamida kiritishdir.

console.log ("Bu konsoldagi satr.");
Bu konsolda mag'lubiyat.

Boshqalar oddiy usulda string qiymatini so'rash uchun alert () yordamida chaqirilishi mumkin bo'lgan brauzerdagi popup:

ogohlantirish ("Bu ogohlantirishdagi satr.");

Ushbu satr brauzerda quyidagi matn bilan bildirishnoma oynasini ochadi:

Bu ogohlantirish satridir.

Alert () usuli kamroq qo'llaniladi, chunki ogohlantirishlar doimo yopilishi kerak.

Satrlarni o'zgaruvchilarda saqlash

JavaScript-dagi o'zgaruvchilar qiymatlar yordamida saqlanadigan konteyner deb nomlangan kalit so'zlar var, const yoki let. Satrlarni o'zgaruvchilarga berish mumkin.

const newString \u003d "Bu o'zgaruvchiga berilgan satr.";

Endi newString o'zgaruvchisi konsol yordamida havola qilinadigan va ko'rsatiladigan satrni o'z ichiga oladi.

console.log (newString);
Bu o'zgaruvchiga tayinlangan satr.

Satrlarni o'zgaruvchilarga berib, har safar uni chiqarishni xohlaganingizda satrni qayta kiritishingiz shart emas, bu esa dasturlar ichidagi satrlar bilan ishlashni osonlashtiradi.

Iplarni birlashtirish

Iplarni birlashtirish - bu ikki yoki undan ortiq simlarni bittaga birlashtirish jarayoni yangi qator... Birlashtirish + operatori yordamida amalga oshiriladi. + Belgisi matematik operatsiyalarda qo'shimcha operator hisoblanadi.

Masalan, ikkita qisqa qatorni birlashtirishga harakat qiling:

"Dengiz" + "ot";
Dengiz oti

Birlashma bo'shliqlar kiritmasdan bitta satrning oxirini boshqa satrning boshi bilan birlashtiradi. Chiziqlar orasida bo'sh joy bo'lishi uchun uni birinchi qatorning oxiriga qo'shing.

"Dengiz" + "ot";
Dengiz oti

Birlashtirish satrlar va o'zgaruvchilarni satr qiymatlari bilan birlashtirishga imkon beradi.



const favePoem \u003d "Mening sevimli she'rim" + muallif "tomonidan yozilgan" + she'r + "."; ";

Dasturda birlashma natijasida hosil bo'lgan yangi satrlardan foydalanish mumkin.

Shablon harflari bilan o'zgaruvchilar

Shablon literallarining xususiyatlaridan biri bu qatorga ifodalar va o'zgaruvchilarni kiritish qobiliyatidir. Birlashtirish o'rniga, o'zgaruvchini kiritish uchun $ () sintaksisidan foydalanishingiz mumkin.

const she'ri \u003d "Keng Okean";
const muallifi \u003d "Pablo Neruda";
const favePoem \u003d `Mening eng sevgan she'rim $ (muallif) tomonidan $ (she'r) .`;
Mening sevimli she'rim - Pablo Nerudaning "Keng okean".

Ushbu sintaksis xuddi shu natijani beradi. Shablonli harflar mag'lubiyatni birlashtirishni osonlashtiradi.

String harflari va satr qiymatlari

Ehtimol, siz ko'rganingizdek, barcha satrlar tirnoq yoki teskari tirnoq bilan keltirilgan, ammo mag'lubiyatga chiqishda tirnoq belgilari mavjud emas.

"Dengiz ortida";
Dengiz ortida

String literal - bu tashqi ko'rinishga qarab mag'lubiyat manba koditirnoqlarni o'z ichiga olgan. Satr qiymati - bu chiqishda (tirnoqsiz) paydo bo'ladigan satr.

Ushbu misolda "Dengiz ortida" so'zning to'g'ridan-to'g'ri ma'nosi va Dengizning orqasida - mag'lubiyat qiymati.

Iplardagi tirnoq va apostroflarni kesib o'tish

Iplarni belgilash uchun tirnoqlardan foydalanilganligi sababli, satrlarda apostrof va tirnoq belgilaridan foydalanishning maxsus qoidalari mavjud. Masalan, bitta tirnoq satrining o'rtasida joylashgan apostrof JavaScript tomonidan yopiladigan bitta tirnoq sifatida talqin qilinadi va mo'ljallangan qatorning qolgan qismi kod sifatida o'qishga harakat qiladi.

Ushbu misolni ko'rib chiqing:

const brokenString \u003d "Men uzilgan mag'lubiyatman";
console.log (brokenString);
noma'lum: kutilmagan nishon (1:24)

Ikkala tirnoqli satr ichida ikkita tirnoq ishlatmoqchi bo'lsangiz, xuddi shu narsa yuz beradi. Tarjimon farqni sezmaydi.

Bunday xatolarga yo'l qo'ymaslik uchun siz quyidagilarni ishlatishingiz mumkin:

  • Turli xil sintaksis.
  • Belgilardan qochish.
  • Andoza literal.

Muqobil mag'lubiyatga sintaksis

Ushbu muammoni hal qilishning eng oson usuli bu ssenariyda ishlatilgan sintaksisning teskarisi. Masalan, qatorlarni apostroflar bilan ikkita tirnoq bilan yoping:

"Biz ikki qavatli tirnoqlarda apostrofdan xavfsiz foydalanayapmiz."

Iqtibos satrlari bitta tirnoq ichiga kiritilishi mumkin:

"Keyin u:" Salom, dunyo! "Dedi" ";

Bir va ikkita tirnoqlarni birlashtirib, siz satrlar ichidagi tirnoq va apostroflarni namoyish qilishni boshqarishingiz mumkin. Biroq, bu loyiha fayllaridagi sintaksisning izchilligiga ta'sir qiladi va uni saqlash qiyin bo'ladi.

Qochish belgisi \\

Orqa chiziq bilan, JavaScript kotirovkalarni yopiq kotirovka sifatida talqin qilmaydi.

\\ 'Birikmasi har doim apostrof sifatida talqin qilinadi va \\ "- ikkilangan tirnoq sifatida, istisnosiz.

Bu apostroflarni bitta tirnoqli satrlarda, tirnoqlarni esa ikkita tirnoqli satrlarda ishlatishga imkon beradi.

"Biz bitta tirnoq bilan apostrofdan xavfsiz foydalanayapmiz."
"Keyin u shunday dedi:" Salom, Dunyo! \\ "";

Ushbu usul biroz chalkash ko'rinadi. Agar bitta satrda ham apostrof, ham ikkilangan tirnoq bo'lsa, kerak.

Shablon literallari

Shablonli harflar orqa nuqta bilan belgilanadi, shuning uchun har ikkala tirnoq va apostroflar qo'shimcha manipulyatsiyasiz xavfsiz ishlatilishi mumkin.

`Biz shablon shriftida apostroflar va" tirnoqlarni "xavfsiz ishlatamiz. ';

Shablonli yozuvlar nafaqat tirnoq va apostroflarni ko'rsatishda xatolardan qochibgina qolmay, balki keyingi bobda muhokama qilingan qatorli ifodalar va ko'p qatorli bloklarni qo'llab-quvvatlaydi.

Ko'p qatorli chiziqlar va yangi qatorlarning uzilishi

Ba'zi hollarda yangi satr belgisini yoki chiziqli tanaffusni kiritish kerak. \\ N yoki \\ r qochish belgilari kod chiqishiga yangi qator kiritishga yordam beradi.

const threeLines \u003d "Bu uchta satrda joylashgan \\ n satr.";
Bu mag'lubiyat
bu bo'ylab joylashgan
uch qator.

Bu chiqishni bir nechta satrlarga bo'linadi. Ammo, agar kodda uzun chiziqlar bo'lsa, ular bilan ishlash va o'qish qiyin bo'ladi. Bitta qatorni bir nechta satrda aks ettirish uchun biriktirish operatoridan foydalaning.

const threeLines \u003d "Bu satr \\ n" +
"bu \\ n" + bo'ylab tarqaladi
"uchta qator.";

\\ Escape belgisini ishlatib, yangi qatordan chiqib ketishingiz mumkin.

const threeLines \u003d "Bu satr \\ n \\
bu \\ n \\ bo'ylab tarqaladi
uch qator. ";

Eslatma: Ushbu usul tavsiya etilmaydi, chunki ba'zi brauzerlarda muammolar bo'lishi mumkin.

Kodingizni o'qilishi uchun shablon literallaridan foydalaning. Bu birlashma va qochish belgilaridan qochadi.

const threeLines \u003d `Bu satr
bu bo'ylab joylashgan
uch qator. ';
Bu mag'lubiyat
bu bo'ylab joylashgan
uch qator.

Turli xil kod bazalari turli xil standartlardan foydalanishi mumkinligi sababli, yangi qatorga o'tish va ko'p qatorli satrlarni yaratishning barcha usullarini bilish muhimdir.

Xulosa

Endi siz JavaScript-da satrlar bilan ishlashning asosiy printsiplarini bilasiz, siz satrlar va shablon literallarini yaratishingiz, birlashtirish va traversal qilishingiz va o'zgaruvchilarga qatorlarni berishingiz mumkin.

Teglar:

Muallifdan: Do'stlar, sizga salom aytaman. Oldingi bir nechta maqolalarda biz sizni JavaScript-dagi raqamli ma'lumotlar turi bilan tanishtirdik va raqamlar bilan ishladik. Endi JavaScript-dagi satrlar bilan ishlash vaqti keldi. JavaScript-dagi ma'lumotlar turini batafsil ko'rib chiqamiz.

Biz allaqachon mag'lubiyat turi bilan qisqacha tanishib chiqdik va aslida ipning nima ekanligini va qanday yozilishini bilib oldik. Keling, torlar va ular bilan qanday ishlashni batafsil ko'rib chiqamiz.

Esingizda bo'lsa, JavaScript-dagi har qanday matn bu mag'lubiyatdir. Satr kotirovkalarga qo'shilishi kerak, bitta yoki ikkita, farqi yo'q:

var hi \u003d "salom", name \u003d "Jon";

var salom \u003d "salom",

name \u003d "Jon";

Endi biz o'zgaruvchilarga faqat bitta so'z yozdik. Agar biz katta hajmdagi matnni yozib olishni xohlasak nima bo'ladi? Muammo yo'q, keling, ba'zi bir baliq matnlarini o'zgaruvchiga yozib, uni konsolga chiqaramiz:

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis respectissimos maxime et tempore omnis, ab fugit. Quos nisi, culpa mashq qilish!"; console.log (matn);

var text \u003d "Lorem ipsum dolor sit amet, advipisicing elit. Nobis respectissimos maxime et tempore omnis, ab fugit. Quos nisi, culpa mashq qilish!";

konsol. jurnal (matn);

Ishlaydi. Ammo agar matn juda ko'p bo'lsa, ehtimol yangi satrda yangi paragrafni boshlash uchun bizda tanaffuslar bo'ladi. Matnimizga ushbu qator tanaffusini qo'shishga harakat qilaylik:

Ko'rib turganingizdek, mening matn muharriri allaqachon qizil rang bilan belgilangan mumkin bo'lgan muammo... Ushbu talqinda brauzer yangi qatorga qanday munosabatda bo'lishini ko'rib chiqamiz:

Siz kutganidek sintaksis xatosi. Qanday bo'lish kerak? O'zgaruvchiga ko'p satrli matn yozishning bir necha yo'li mavjud. Siz ulardan birini allaqachon taxmin qilgandirsiz, biz mag'lubiyatni birlashtirish haqida gaplashamiz:

Ko'rib turganingizdek, o'zgaruvchiga satr yozishning ushbu variantiga muharrir odatdagidek javob beradi. Boshqa variant - teskari burilish (\\) dan foydalanish, bu JavaScript-da va boshqa ko'plab dasturlash tillarida maxsus belgilar bilan xavfsiz ishlashga imkon beradigan qochish belgisidir. Biz qanday maxsus belgilar ekanligini ko'proq bilib olamiz. Keling, ko'rinmas chiziqli tasma belgisidan qochishga harakat qilaylik:

Himoyalash ham bizning muammomizni hal qildi. Ammo, agar biz konsolni ko'rib chiqsak, dasturni yozish muammosini hal qilgan holda, ikkala mag'lubiyatni birlashtirish va qatorni uzatish qochib ketadi, ko'p satrli satrni ekranga chiqarish bilan muammo hal qilinmadi. Ko'p qatorli satr o'rniga biz konsolda bitta satr matnini ko'ramiz. Qanday bo'lish kerak?

Va bu erda bizga maxsus yangi satr belgisi \\ n yordam beradi. Ushbu maxsus belgini kerakli joyga qo'shib, biz tarjimonga ushbu nuqtada joriy satrni tugatish va yangi satr qilish kerakligini aytamiz.

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis respectissimos maxime et tempore omnis, ab fugit. \\ \\ nQuos nisi, culpa mashqlari!"; console.log (matn);

var text \u003d "Lorem ipsum dolor amet o'tirsin, elitipipitice konsultatori. Nobis prestisimos maxime et tempore omnis, ab fugit."

\\ nSavol nisi, culpa mashqlarim! ";

konsol. jurnal (matn);

Aslida, agar siz bitta satrda koddagi matnni yozish bilan chalkashmasangiz, biz buni shunday qilishimiz mumkin:

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis respectissimos maxime et tempore omnis, ab fugit. \\ nQuos nisi, culpa mashqlari!"; console.log (matn);

var text \u003d "Lorem ipsum dolor sit amet, advipisicing elit. Nobis respectissimos maxime et tempore omnis, ab fugit. \\ NQuos nisi, culpa mashq qilish!";

konsol. jurnal (matn);

Ekrandagi natija bundan o'zgarmaydi, biz ko'p satrli matnni brauzer konsolida ko'ramiz:

Koddagi teskari burilish belgisi bu vaziyatda biz uchun haqiqatan ham zarur emas. Va aslida, yuqorida aytib o'tilganidek, maxsus belgilardan qochish uchun kerak. Masalan, biz bitta tirnoq bilan qo'shib qo'ygan qator ichida apostrof mavjud, ya'ni. bitta taklif:

var text \u003d "Lorem ipsum d" olor sit amet ";

Maqola sizga yoqdimi? Do'stlar bilan bo'lishish uchun: