Javascript xəttin sonunu qeyd etmək üçün istifadə olunur. sətirlərlə işləmək üçün javascript metodları. Sətir həmişə massivdir




Sətirlərin emalı üçün funksiyaların və konstruksiyaların istifadəsi üçün semantik “çərçivələr” olaraq, semantik məzmununa görə informasiyanın emalı proseslərinin proqramlaşdırılması üçün xüsusi maraq kəsb edir. JavaScript-də sətirlərlə işləmə funksiyaları öz semantik konstruksiyalarında birləşdirilə bilər, kodu sadələşdirir və problemin mövzu sahəsini rəsmiləşdirir.

Klassik versiyada məlumatın işlənməsi, ilk növbədə, sətir funksiyalarıdır. JavaScript-in sintaksisi və semantikasında dilin hər bir xüsusiyyəti və quruluşu öz xüsusiyyətlərinə malikdir. Buradakı sətir metodlarının öz üslubu var, lakin ümumi istifadədə bu, sadə semantika daxilində sadəcə sintaksisdir: axtar, əvəz et, daxil et, çıxar, məzmun, hərfi dəyişdir...

Sətir dəyişənlərinin təsviri

Konstruksiya simli elan etmək üçün istifadə olunur var. Siz dərhal onun dəyərini təyin edə və ya alqoritmin icrası zamanı formalaşdıra bilərsiniz. Sətir üçün tək və ya cüt dırnaqlardan istifadə edə bilərsiniz. Əgər onda sitat olmalıdırsa, o, "\" simvolu ilə qaçmalıdır.

Göstərilən sətir daxili qoşa dırnaqlardan qaçmağı tələb edir. Eynilə, tək dırnaqlarla göstərilən sitat içəridə tək dırnaqların olması üçün çox vacibdir.

Bu misalda "str_dbl" sətri sətirdə istifadə oluna bilən faydalı xüsusi simvolları sadalayır. Bu halda, "\" simvolunun özü qaçır.

Sətir həmişə massivdir

JavaScript-in sətirlərlə işləməsi bir çox cəhətdən edilə bilər. Dilin sintaksisi bir çox variant təmin edir. Əvvəla, bunu heç vaxt unutmaq olmaz (edilən təsvirlər kontekstində):

  • str_isV => "V";
  • str_chr => """;
  • str_dbl => "a".

Yəni, sətir simvolları massivin elementləri kimi mövcuddur və hər bir xüsusi simvol bir simvoldur. Qaçma sintaksis elementidir. Həqiqi xəttə heç bir "ekran" qoyulmur.

charAt() funksiyasından istifadə oxşar effekt verir:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => """;
  • str_dbl.charAt(5) => "a".

Proqramçı hər iki variantdan istifadə edə bilər.

Əsas sətir funksiyaları

JavaScript digər dillərdən bir qədər fərqli şəkildə edilir. Funksiya adı dəyişənin adına (və ya birbaşa sətirə) nöqtə ilə ayrılaraq yazılır. Adətən daxili funksiyalar dilin sintaksisi üslubunda metodlar adlandırılır, lakin birinci söz daha çox tanışdır.

Sətin ən vacib üsulu (daha doğrusu, xassə) onun uzunluğudur.

  • var xStr = str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

Nəticə: yuxarıdakı təsvirin sətirləri üzrə 11/12/175.

Ən vacib daxili funksiya cütlüyü sətri elementlər massivinə bölmək və massivi sətirdə birləşdirməkdir:

  • bölünmə(s[,l]);
  • qoşulun(lar).

Birinci halda, sətir "s" ayırıcı simvolu ilə elementlərin sayı "l" dəyərindən çox olmayan elementlər massivinə bölünür. Əgər nömrə göstərilməyibsə, bütün sətir bölünür.

İkinci halda, elementlər massivi müəyyən edilmiş ayırıcı vasitəsilə bir sətirdə birləşdirilir.

Bu cütün diqqətəlayiq xüsusiyyəti ondan ibarətdir ki, bölünmə bir ayırıcıdan, birləşmədən isə digərindən istifadə etməklə həyata keçirilə bilər. Bu kontekstdə JavaScript-də sətirlərlə işləmək dilin sintaksisindən “çıxarıla” bilər.

Klassik simli funksiyalar

Adi sətir emal funksiyaları:

  • axtarış;
  • nümunə;
  • yerdəyişmə;
  • transformasiya.

Metodlarla təmsil olunur: indexOf(), lastIndexOf(), toLowerCase(), toUpperCase(), concan(), charCodeAt() və s.

JavaScript-də sətirlərlə işləmək çoxlu sayda funksiya ilə təmsil olunur, lakin onlar ya bir-birini təkrarlayır, ya da köhnə alqoritmlər və uyğunluq üçün qalır.

Məsələn, concat() metodundan istifadə qanunidir, lakin yazmaq daha asandır:

  • str = str1 + str2 + str3;

charAt() funksiyasından istifadə etmək də məntiqlidir, lakin charCodeAt() funksiyasından istifadə real praktiki dəyərə malikdir. Eynilə, JavaScript üçün sətir kəsilməsinin xüsusi mənası var: ekran çıxışı kontekstində, məsələn, alert() mesajında ​​o, "\n", səhifə məzmunu konstruksiyasında "
". Birinci halda, bu, sadəcə bir simvol, ikincidə isə simvollar silsiləsi.

Sətirlər və müntəzəm ifadələr

JavaScript-də sətirlərlə işləmək müntəzəm ifadə mexanizmini əhatə edir. Bu, serverə getmədən brauzer daxilində mürəkkəb axtarışlar, seçimlər və sətir çevrilmələrini həyata keçirməyə imkan verir.

Metod uyğun tapır və əvəz et tapılan uyğunluğu istədiyiniz qiymətlə əvəz edir. Adi ifadələr JavaScript-də yüksək səviyyədə həyata keçirilir, mahiyyətcə mürəkkəbdir və tətbiqin xüsusiyyətlərinə görə diqqəti serverdən müştəri brauzerinə keçirir.

Metodları tətbiq edərkən uyğunlaşdırmaq, axtarış etməkəvəz et yalnız ilkin parametrlərin və axtarış sətirlərinin məqbul dəyərlərinin bütün diapazonunda sınaqdan keçirilməsinə lazımi diqqət yetirməməli, həm də brauzerdəki yükü qiymətləndirməlisiniz.

Normal ifadə nümunələri

Sətirlərin işlənməsi üçün müntəzəm ifadələrin əhatə dairəsi genişdir, lakin tərtibatçıdan böyük diqqət və diqqət tələb edir. İlk növbədə, istifadəçi daxiletmələrini forma sahələrində sınaqdan keçirərkən müntəzəm ifadələrdən istifadə olunur.

Burada girişdə tam ədəd (schInt) və ya həqiqi ədəd (schReal) olub-olmadığını yoxlayan funksiyalar var. Aşağıdakı nümunə sətirləri yalnız etibarlı simvollar üçün yoxlayaraq emal etməyin nə qədər səmərəli olduğunu göstərir: schText yalnız mətndir, schMail etibarlı e-poçt ünvanıdır.

Nəzərə almaq çox vacibdir ki, JavaScript-də simvollar və sətirlər yerli dilə çox diqqət yetirməyi tələb edir, xüsusən də kiril əlifbası ilə işləyərkən. Bir çox hallarda, onların dəyərlərindən daha çox faktiki simvol kodlarını göstərmək daha məqsədəuyğundur. Bu, ilk növbədə rus hərflərinə aiddir.

Xüsusilə qeyd etmək lazımdır ki, tapşırığı qoyulduğu kimi yerinə yetirmək həmişə lazım deyil. Xüsusilə, tam və həqiqi ədədlərin yoxlanılması ilə bağlı: klassik sətir metodları ilə deyil, adi sintaksis konstruksiyaları ilə əldə edə bilərsiniz.

Obyekt yönümlü sətirlər

JavaScript-də sətirlərlə işləmək çox sayda funksiya ilə təmsil olunur. Ancaq bu, onları orijinal formada istifadə etmək üçün yaxşı bir səbəb deyil. Funksiyaların sintaksisi və keyfiyyəti qüsursuzdur, lakin bu, hamıya uyğun bir həlldir.

Simli funksiyaların istənilən istifadəsi verilənlərlə, əhatə dairəsi, alqoritmin konkret məqsədi ilə müəyyən edilən həqiqi mənanın işlənməsini nəzərdə tutur.

İdeal həll həmişə məlumatları onun mənası üçün şərh etməkdir.

Hər bir parametri obyekt kimi təqdim etməklə, onunla işləmək üçün funksiyaları formalaşdıra bilərsiniz. Biz həmişə simvolların işlənməsi haqqında danışırıq: nömrələr və ya sətirlər xüsusi olaraq təşkil edilmiş simvol ardıcıllığıdır.

Ümumi alqoritmlər var, özəl alqoritmlər də var. Məsələn, soyad və ya ev nömrəsi sətirdir, lakin birinci halda yalnız rus hərflərinə icazə verilirsə, ikinci halda nömrələrə, rus hərflərinə icazə verilir və tire və ya slash vasitəsilə indekslər baş verə bilər. İndekslər əlifba və ya rəqəmsal ola bilər. Evin binaları ola bilər.

Bütün vəziyyətləri həmişə qabaqcadan görmək olmur. Bu proqramlaşdırmada vacib bir məqamdır. Nadir bir alqoritm dəqiqləşdirmə tələb etmir və əksər hallarda funksionallığı sistematik şəkildə tənzimləmək lazımdır.

İşlənmiş sətir məlumatının obyekt şəklində rəsmiləşdirilməsi kodun oxunuşunu yaxşılaşdırır, onu semantik emal səviyyəsinə çatdırmağa imkan verir. Bu, işlənmiş alqoritmin daha etibarlılığı ilə fərqli funksionallıq dərəcəsi və əhəmiyyətli dərəcədə yaxşı kod keyfiyyətidir.

Prototip yönümlü bir dil öyrənməyə ciddi qərar verən hər kəsə salamlar. Keçmişdə sizə haqqında danışmışdım və bu gün biz JavaScript sətirlərini təhlil edəcəyik. Bu dildə bütün mətn elementləri sətir olduğundan (simvollar üçün ayrıca format yoxdur), siz özünüz təxmin edə bilərsiniz ki, bu bölmə js sintaksisinin öyrənilməsində mühüm yer tutur.

Buna görə də bu nəşrdə sizə daxili elementlərin necə yaradıldığını, onlar üçün hansı üsulların və xüsusiyyətlərin təmin edildiyini, sətirləri necə düzgün çevirmək, məsələn, nömrəyə çevirmək, istədiyiniz alt sətri necə çıxarmaq olar və daha çox şey söyləyəcəyəm. . Bundan əlavə, kod nümunələri əlavə edəcəyəm. İndi işə başla!

Simli Dəyişən Sintaksis

js dilində bütün dəyişənlər var açar sözündən istifadə etməklə elan edilir və sonra parametrlərin formatından asılı olaraq elan edilən dəyişənin tipi müəyyən edilir. -dan xatırladığınız kimi, JavaScript-də güclü yazma yoxdur. Buna görə də məcəllədə vəziyyət belədir.

Dəyişənləri işə salarkən, dəyərlər ikiqat, tək və 2015-ci ildən başlayaraq kəsilmiş tək dırnaqlarla çərçivəyə salına bilər. Mən aşağıda sətirlərin elan edilməsinin hər bir üsulunun nümunələrini əlavə etmişəm.

Üçüncü üsula xüsusi diqqət yetirmək istəyirəm. Onun bir sıra üstünlükləri var.

Bununla, təhlükəsiz bir xətt fasiləsi həyata keçirə bilərsiniz və bu belə görünəcək:

xəbərdarlıq (`bir neçə

dözmək

Üçüncü yol isə $(...) konstruksiyasından istifadə etməyə imkan verir. İnterpolasiya daxil etmək üçün belə bir vasitə lazımdır. Qorxma, indi bunun nə olduğunu söyləyəcəyəm.

$(...) sayəsində sətirlərə nəinki dəyişən dəyərlər daxil edə bilərsiniz, həm də onlarla hesab və məntiqi əməliyyatlar, çağırış metodları, funksiyalar və s. Bütün bunlar bir terminlə adlanır - interpolyasiya. Bu yanaşmanın tətbiqi nümunəsinə baxın.

1 2 3 var qələm = 3; var karandaş = 1; alert(`$(qələm) + $(qələm*5) = $(qələm + karandaş)`);

var qələm = 3; var karandaş = 1; alert(`$(qələm) + $(qələm*5) = $(qələm + karandaş)`);

Nəticədə, ifadə ekranda görünəcək: "3 + 1*5 = 8".

Sətirlərin elan edilməsinin ilk iki üsuluna gəldikdə, onlar arasında heç bir fərq yoxdur.

Xüsusi personajlar haqqında bir az danışaq

Bir çox proqramlaşdırma dillərində sətirlərdə mətni idarə etməyə kömək edən xüsusi simvollar var. Onların arasında ən məşhuru xətt kəsilməsidir. (\n).

Bütün oxşar alətlər əvvəlcə tərs xətt (\) ilə başlayır və ingilis əlifbasının hərflərindən sonra gəlir.

Aşağıda bəzi xüsusi simvolları sadalayan kiçik bir cədvəl əlavə etdim.

Metodların və xüsusiyyətlərin ağır bir arsenalında ehtiyat toplamaq

Dilin tərtibatçıları sətirlərlə işi sadələşdirmək və optimallaşdırmaq üçün bir çox üsul və xüsusiyyətlər təqdim etmişlər. Keçən il ES-2015 adlı yeni standartın buraxılması ilə bu siyahı yeni alətlərlə tamamlandı.

Uzunluq

Mən simli dəyişənlərin dəyərlərinin uzunluğunu öyrənməyə kömək edən ən populyar xüsusiyyətdən başlayacağam. Bu uzunluq. Bu şəkildə istifadə olunur:

var string = "Birbuynuzlular";

xəbərdarlıq (string.length);

Cavab 9 rəqəmini göstərəcək. Bu xüsusiyyət dəyərlərin özlərinə də tətbiq oluna bilər:

"Unicorns".uzunluq;

Nəticə dəyişməyəcək.

charAt()

Bu üsul mətndən müəyyən bir simvol çıxarmağa imkan verir. Xatırladıram ki, nömrələmə sıfırdan başlayır, ona görə də sətirdən birinci simvolu çəkmək üçün aşağıdakı əmrləri yazmalısınız:

var string = "Birbuynuzlular";

alert(string.charAt(0));

Bununla belə, nəticə simvol tipi olmayacaq, yenə də tək hərfli sətir kimi qəbul ediləcək.

toLowerCase()-dən toUpperCase()-ə

Bu üsullar xarakter vəziyyətinə nəzarət edir. "Məzmun" kodunu yazarkən.

toUpperCase() bütün söz böyük hərflərlə göstəriləcək.

Əks effekt üçün "Məzmun" istifadə etməlisiniz. toLowerCase().

Indeksi()

Alt sətirin axtarışı üçün tələb olunan və zəruri alət. Arqument olaraq, tapmaq istədiyiniz sözü və ya ifadəni daxil etməlisiniz və metod tapılan elementin mövqeyini qaytarır. Axtarış mətni tapılmadıqda, istifadəçiyə "-1" qaytarılacaq.

1 2 3 4 var text = "Gül axtarışını təşkil edin!"; alert(text.indexOf("rəng")); //19 alert(text.indexOf(" ")); //12 alert(text.lastIndexOf(" ")); //18

var text = "Gül axtarışını təşkil edin!"; alert(text.indexOf("rəng")); //19 alert(text.indexOf(" ")); //12 alert(text.lastIndexOf(" ")); //18

Qeyd edək ki, lastIndexOf() eyni şeyi edir, yalnız cümlənin sonundan axtarış edir.

Alt sətirlərin çıxarılması

js-də bu hərəkət üçün təxminən üç eyni üsul yaradıldı.

Əvvəlcə təhlil edək alt sətir (başlanğıc, son)dilim (başlamaq, bitirmək). Eyni işləyirlər. Birinci arqument hasilatın başlayacağı başlanğıc mövqeyini müəyyənləşdirir, ikincisi isə son dayanma nöqtəsinə cavabdehdir. Hər iki üsulda mövqe sonunda yerləşən simvol daxil edilmədən sətir çıxarılır.

var text = "Atmosfer"; alert(text.altstring(4)); // "sfera" xəbərdarlığını göstərir(text.substring(2, 5)); //"mos" xəbərdarlığını göstər (text.slice(2, 5)); // "mos" göstərin

İndi üçüncü üsula nəzər salaq ki, bu da adlanır substr(). Bunun üçün də 2 arqument lazımdır: başlamaquzunluq.

Birincisi başlanğıc mövqeyini, ikincisi isə çıxarılacaq simvolların sayını təyin edir. Bu üç alət arasındakı fərqi izləmək üçün əvvəlki nümunədən istifadə etdim.

var text = "Atmosfer";

alert(text.substr(2, 5)); // "mosphe" göstərin

Alt sətirləri götürmək üçün sadalanan vasitələrdən istifadə edərək, proqramın daha sonra işlədiyi yeni daxili elementlərdən lazımsız simvolları silə bilərsiniz.

əvəz et()

Bu üsul mətndəki simvolları və alt sətirləri əvəz etməyə kömək edir. Qlobal dəyişdirmələri həyata keçirmək üçün də istifadə edilə bilər, lakin bunun üçün müntəzəm ifadələr daxil etməlisiniz.

Bu nümunə yalnız birinci sözdəki alt sətri əvəz edəcək.

var text = "Atmosfer Atmosferi"; var newText = text.replace("Atmo","Strato") alert(newText) // Nəticə: Stratosfer Atmosferi

Və bu tətbiqdə, "g" adi ifadə bayrağına görə qlobal dəyişdirmə həyata keçiriləcək.

var text = "Atmosfer Atmosferi"; var newText = text.replace(/Atmo/g,"Strato") alert(newText) // Nəticə: Stratosfer Stratosfer

Gəlin çevrilməni edək

JavaScript yalnız üç növ obyekt tipinə çevrilməni təmin edir:

  1. Rəqəm;
  2. simli;
  3. Boolean.

Cari nəşrdə onlardan 2-si haqqında danışacağam, çünki simlərlə işləmək üçün onlar haqqında bilik daha çox lazımdır.

Rəqəmsal çevrilmə

Bir elementin dəyərini açıq şəkildə rəqəmsal formaya çevirmək üçün istifadə edə bilərsiniz nömrə (dəyər).

Daha qısa bir ifadə də var: +"999".

var a = Number("999");

Simli çevrilmə

Funksiya tərəfindən yerinə yetirilir xəbərdarlıq, eləcə də açıq çağırış sətir (mətn).

Mən javascript-də yazanda sətirlərlə işləyən metodların (və nizamın, arqumentlərin tərifinin) sintaksisini aydınlaşdırmaq üçün tez-tez axtarış sistemlərinə müraciət etməliyəm.

Bu yazıda strings ilə bağlı ən çox yayılmış javascript metodlarının nümunələri və təsvirlərini verməyə çalışacağam. Rahatlıq üçün ən məşhur üsullar məqalənin yuxarı hissəsində yerləşir.

Sətirə çevirin

Siz nömrəni, mantiqi və ya obyekti sətirə çevirə bilərsiniz.

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Bunu string() funksiyası ilə də edə bilərsiniz.

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Nikolas Zakas deyir: "Əgər dəyərdən əmin deyilsinizsə (null və ya qeyri-müəyyən), onda String() funksiyasından istifadə edin, çünki dəyişənin növündən asılı olmayaraq sətir qaytarır."

müəyyən edilməmiş dəyişənə heç bir dəyər təyin edilməməsi deməkdir, a sıfır, - ona null dəyəri təyin olunduğunu (demək olar ki, null boş obyekt kimi müəyyən edilir).

Sətirin alt sətirlərə bölünməsi

Bir sətri alt sətirlər massivinə bölmək üçün split() metodundan istifadə edə bilərsiniz:

Var myString = "gəlir, ayrı, vergüllər"; var substringArray = myString.split(","); // ["gəlir", "ayrı", "at", "the", "vergüllər"] var arrayLimited = myString.split(",", 3); // ["gəlir", "ayrı", "at"]

Sonuncu sətirdən göründüyü kimi, ikinci isteğe bağlı arqumentin dəyəri qaytarılan massivdəki elementlərin sayını müəyyən edir.

Sim uzunluğunu əldə edin

Uzunluq xüsusiyyəti ilə siz sətirdəki unicode simvollarının sayını tapa bilərsiniz:

Var myString = "Siz"tam bir xaraktersiniz."; var stringLength = myString.length; // 25

Sətirdə alt sətir təyin edin

Bunu həyata keçirməyin iki yolu var:

indexOf() istifadə edin:

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

indexOf() metodu sətirdə alt sətir (keçirilmiş ilk arqument) axtarır (sətrin əvvəlindən) və sətirdə alt sətirin baş verməsinin başladığı ilk simvolun mövqeyini qaytarır.

lastIndexOf() istifadə edin:

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

lastIndexOf() metodu sətir daxilində sonuncu alt sətri axtarması istisna olmaqla, eyni şeyi edir.

Əgər alt sətir tapılmazsa, hər iki üsul -1 qaytarır. İkinci isteğe bağlı arqument axtarışa başlamaq istədiyiniz sətirdəki mövqeyi müəyyənləşdirir. Beləliklə, əgər indexOf() metodunun ikinci arqumenti 5-dirsə, onda axtarış 5-ci simvoldan başlayacaq və 0-4 simvol nəzərə alınmayacaq. lastIndexOf() üçün, həmçinin ikinci arqument 5 olarsa, axtarış geriyə doğru başlayacaq, 6 və yuxarı simvollar nəzərə alınmayacaq.

Sətirin bir hissəsini necə əvəz etmək olar

Sətin bir hissəsini (və ya hətta hamısını) əvəz etmək üçün replace() metodundan istifadə edin.

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Xose Bautista"

Birinci arqument dəyişdiriləcək alt sətir hissəsini ehtiva edir; ikinci arqument dəyişdiriləcək alt sətirin yerini tutacaq sətirdir. Yalnız alt sətirin ilk nümunəsi dəyişdiriləcək.

Alt sətirin bütün hadisələrini əvəz etmək üçün " g " bayrağı ilə müntəzəm ifadədən istifadə edin.

Var myString = "O, avtomobil sahilində avtomobil qabıqları satır"; var newString = myString.replace(/automotive/g, "dəniz"); konsol jurnalı (newString); // "Dəniz sahilində dəniz qabıqları satır"

İkinci arqumentə əvəz ediləcək alt sətir və ya funksiya daxil ola bilər.

Müəyyən bir mövqedə bir xarakter tapın

Hansı simvolun verilmiş mövqedə olduğunu öyrənmək üçün charAt() metodundan istifadə edə bilərsiniz:

Var myString = "Lələk quşları"; var whatsAtSeven = myString.charAt(7); // "f"

JavaScript-də tez-tez olduğu kimi, birinci mövqe 1 deyil, 0-dan sayılır.

Alternativ olaraq charCodeAt() metodundan istifadə edə bilərsiniz, lakin simvolun yerinə onun kodunu alacaqsınız.

Var myString = "Lələk quşları"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Nəzərə alın ki, böyük hərfin kodu (11-ci mövqe) eyni hərfin kodundan fərqlidir, lakin kiçik hərflə (mövqe 7).

javascript-də sətir birləşməsi

Əksər hallarda sətirləri birləşdirmək üçün (+) operatorundan istifadə edəcəksiniz. Lakin siz həmçinin concat() metodundan istifadə edərək sətirləri birləşdirə bilərsiniz.

Var stringOne = "Knibb Yüksək futbol"; var stringTwo = stringOne.concat("qaydalar."); // "Knibb Yüksək futbol qaydaları"

Çoxlu sətirlər concat() -a ötürülə bilər və onlar concat() metoduna əlavə olunduğu ardıcıllıqla nəticə sətirində görünəcəklər.

VarstringOne = "Knibb"; var stringTwo = "Yüksək"; var stringThree = "futbol"; var stringFour = "qaydalar."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb yüksək futbol qaydaları."

Sətirin bir hissəsi (javascript-də alt sətir çıxarın)

Mövcud sətirdən alt sətirin bir hissəsini "çəkərək" yeni sətir yaratmağın üç müxtəlif yolu var.

slice() istifadə edərək:

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

Substring() istifadə edərək:

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Hər iki (slice() və substring()) metodları üçün birinci arqument alt sətirin başladığı simvol mövqeyidir (0-dan saymaqla), ikinci arqument alt sətirin bitdiyi simvol mövqeyidir, simvol ikinci arqument qaytarılmış alt sətirə daxil edilməyib.

substr() istifadə edərək:

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Substr metodu üçün birinci arqument həm də alt sətirin başladığı simvol mövqeyini təyin edir. İkinci arqument isteğe bağlıdır. Lakin eyni zamanda, ikinci arqument birinci arqumentdə artıq müəyyən etdiyimiz mövqedən başlayaraq, alt sətirə daxil edilməli olan simvolların sayını göstərir. Bu texnika yuxarıdakı nümunədə yaxşı təsvir edilmişdir.

Javascript-də sətri kiçik və ya böyük hərflərə çevirin

Lazımi dəyişiklikləri etmək üçün dörd üsul var. Sətir simvollarını böyük hərflərə çevirmək üçün iki.

Var stringOne = "Danış, səni eşidə bilmirəm."; var stringTwo = stringOne.toLocaleUpperCase(); // "DANIŞIN, SİZİ EŞİDƏ BİLƏMƏYƏM" var stringThree = stringOne.toUpperCase(); // "DANIŞ, SƏNİ EŞİDƏ BİLMƏYƏM"

Və iki sətri kiçik hərflərə çevirmək üçün:

Var stringOne = "SİZ BAĞIRMAYINIZ"; var stringTwo = stringOne.toLocaleLowerCase(); // "qışqırmağa ehtiyac yoxdur" var stringThree = stringOne.toLowerCase(); // "qışqırmağa ehtiyac yoxdur"

Ümumiyyətlə, yerli metodla qeyri-lokal metod arasında heç bir fərq yoxdur, lakin "bəzi dillər üçün, məsələn, türk dili kimi, simvolu Unicode sisteminin vəziyyətinə uyğun gəlməyən dillər üçün yerli olmayan metoddan istifadənin nəticələri fərqli ola bilər”. Buna görə də, aşağıdakı qaydaya əməl edin: "Əgər kodun işləyəcəyi dili bilmirsinizsə, yerli metodlardan istifadə etmək daha təhlükəsizdir."

Javascript-də nümunə uyğunluğu

Siz 2 üsuldan istifadə edərək sətirdə nümunənin mövcudluğunu yoxlaya bilərsiniz.

Matç() metodu sətir obyektində çağırılır və müntəzəm ifadə match() metoduna arqument kimi ötürülür.

Var myString = "Odun nə qədər odun çıxara bilərdi"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Odun nə qədər ağac çəngəl edə bilər"

Və exec() metodu RegExp obyektində çağırılır, sətir arqument kimi ötürülür:

Var myString = "Odun nə qədər odun çıxara bilərdi"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Odun nə qədər ağac çuxura bilər"

Hər iki üsul ilk uyğun gələn hadisəni qaytarır. Heç bir uyğunluq tapılmazsa, NULL qaytarılacaq. Normal ifadədə " g " bayrağı varsa, nəticədə bütün uyğunluqları ehtiva edən massiv qaytarılacaq.

Arqument kimi müntəzəm ifadə qəbul edən və uyğun gələn ilk nümunənin başlanğıc mövqeyini qaytaran search() metodundan da istifadə edə bilərsiniz.

Var myString = "Fərz et"; var patternLocation = myString.search(/ume/); // 3

Heç bir uyğunluq tapılmazsa, metod -1 qaytaracaq.

Sonrakı çeşidləmə üçün iki sətirin müqayisəsi

Yerli dilin çeşidləmə sırasına əsasən iki sətri müqayisə etmək üçün siz localeCompare metodundan istifadə edə bilərsiniz. localeCompare metodu üç mümkün dəyəri qaytarır.

MyString = "toyuq"; var myStringTwo = "yumurta"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (-2 qaytaran Chrome istisna olmaqla) whichCameFirst = myString.localeCompare("toyuq"); // 0 whichCameFirst = myString.localeCompare("alma"); // 1 (Chrome 2 qaytarır)

Yuxarıda göstərildiyi kimi, əgər orijinal sətir sətir arqumentindən əvvəl çeşidlənərsə, mənfi dəyər qaytarılacaq, sətir arqumenti orijinal sətirdən sonra sıralansa, +1 qaytarılacaq. Null qaytarılırsa, iki sətir ekvivalentdir.

Bloq saytının bütün oxucularına salamlar Bu yazıda biz mətnin işlənməsi üçün cavabdeh olan daxili jscript obyektinə - String-ə baxacağıq.

Skript server proqramlaşdırma dilinin js String daxili sinfi alt sətir axtarışı, təhlili və ya dəyişdirilməsi kimi sətirlərlə işləmək üçün üsulları təmin edir. Bir mülkü var uzunluq, sətir uzunluğunu qaytarır. Bunu xatırlamaq lazımdır . Sinif elan etmək üçün new açar sözü və String istifadə etmək lazım deyil.

Sadə bir misala baxaq:

// js Simli obyekt // length_string.js //************************************* var s1, s2; s1 = "düz mətn" ; s2 = new String("düz mətn" ); WScript.Echo(s1.uzunluq + " \n"+ s2.uzunluq);

Görürük ki, burada biz iki dəyişən elan etmişik s1 və s2, hər ikisi mətn dəyərini saxlayır " sadə mətn", length xassəsindən istifadə edərək, onların uzunluğunu müəyyən etdik. Gördüyünüz kimi, həm sadələşdirilmiş formatdan, həm də daha çətin olandan (yeni açar sözlər) istifadə edə bilərsiniz.

String sinfinin əsas metodlarına nəzər salaq.

String JS sinif üsulları

s.charAt(indeks)– Verilmiş indeksdə (indeks) simvolu s-dən alın.

s.charCodeAt(indeks)– Verilmiş simvol kodunu kodlaşdırmada çıxarırıq Unicode s-dən indeksi (indeksi) vasitəsilə.

s1.concat(s2)– s1 və s2-nin birləşməsi (birləşməsi).

String.fromCharCode(c1,...,cN)- Unicode sətri yaradın. Simvolların əvəzinə kodlar təyin edirik Unicode.

//************************************* // js String obyekti // Bir sətir yaratmaq// fromCharCode_string.js //************************************* varMyResult; //salamı qaytarır MyResult = String .fromCharCode (104 , 101 , 108 , 108 , 111 ); WScript.Echo(MyResult);

s.indexOf(substr, startindex)– Bu js String sinif metodu s sətirində alt sətir alt sətrini axtarmağa imkan verir. Başlanğıc indeksi parametri axtarışa başlamaq üçün simvol nömrəsini təyin edir, əgər bu parametr yoxdursa, axtarış ən əvvəldən aparılır. Prosesin özü soldan sağa doğru baş verir. indexOf bir sıra qaytarır - hadisənin tapıldığı simvolun indeksi, heç bir şey tapılmazsa, -1 qaytarılacaq. Bunu unutmayaq simvolların nömrələnməsi sıfırdan başlayır.

//************************************* // js String obyekti // Sətirdə axtarış // indexOf_string.js //************************************* varMyStr= "bir, iki, üç və dörd", MyResult; MyResult= MyStr.indexOf ("iki" , 2 ); WScript.Echo(MyResult);

s.lastIndexOf(substr, startindex)– indexOf-a bənzəyir, lakin biz tərs qaydada axtaracağıq.

s.match(rgExp)- String sinfinin bu js metodu adi ifadələrdən (rgExp) istifadə edərək mətndə axtarış aparmağa imkan verir. Nəticədə, nəticəni ehtiva edən bir massiv əldə ediləcəkdir. Massivin birinci elementi tapılan mətn, ikincisi birinci yarımifadəyə uyğun olan alt sətir, üçüncüsü ikinci yarımifadəyə uyğun olan alt sətir və s. Məsələn, biz url-i təhlil edən skriptə baxacağıq.

//************************************* // String js // url ünvanlarının təhlili// match_string.js //************************************* var url = /(\w+):\/\/([\w.]+)\/(\S*)/ ; var mətn = "İnternet səhifəsi http://www.site/~vladimir"; var nəticə = text.match (url) , indeks, siyahı= "" if (nəticə != null ) ( üçün (nəticədə var indeks) ( list+= nəticə[ indeks] + " \n"; ) ) WScript.Echo (siyahı);

s.dilim(başlamaq, )– Mətnin bir hissəsini, parametrləri əldə edin başlamaqson müvafiq olaraq başlanğıc və son mövqeləri təyin edin və tam ədədlərdir.

s.split(küç)– Mətni s alt sətirlərə bölün və kimi yazın. str parametri bölünmənin başlanğıcının əlaməti olan simvolik simvolu müəyyən edir. Çıxışda bir massiv alırıq.

//************************************* // String js obyekti // sətirin massivdə təhlili// split_string.js //************************************* var MyStr2, MyResult1, index, list= "" ; MyStr2 = "birinci ikinci üçüncü dördüncü"; MyResult1 = MyStr2.split (", " ); üçün (MyResult1-də var indeks) ( list+= MyResult1[ index] + " \n"; ) WScript.Echo (siyahı);

s.substr(start[,uzunluq])– Dilimə bənzəyir, lakin burada biz son indeksi deyil, uzunluğu göstəririk.

s.alt sətir (indeks1, indeks2)– Verilmiş s sətirindən alt sətir əldə etməyə imkan verir. alt sətir orijinal dəyərini dəyişmir. Parametrlər başlanğıc və son simvolun mövqelərini təyin edir.

Yazanda JavaScript, çox vaxt sətirlərlə işləyən metodların sintaksisi və parametrləri haqqında məlumat axtarmaq üçün İnternetdə gəzməli olursunuz.

Simlərlə işləmək haqqında çoxlu məqalələr oxumuşam. Bu yazıda sətirlərlə işləmək üçün ən ümumi üsulların nümunələri və qısa təsvirləri göstəriləcəkdir. Tez istinad üçün ən ümumi üsulları yuxarıya qoymağa çalışdım.

Əlbəttə ki, təcrübəli tərtibatçıların əksəriyyəti artıq bir çox üsullarla kifayət qədər tanışdırlar, lakin məncə, bu, yeni başlayanlar üçün sadə vasitələrlə mürəkkəb əməliyyatları yerinə yetirməyə kömək edə biləcək üsulların çeşidini başa düşmək üçün yaxşı bir siyahıdır.

Stringə çevirin

Siz nömrəni, mantiq ifadəsini və ya obyekti sətirə çevirə bilərsiniz:

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

ilə eyni şəkildə edə bilərsiniz String():

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Əgər dəyərin olmadığına əmin deyilsinizsə sıfır və ya müəyyən edilməmiş, istifadə edə bilərsən String(), dəyər növündən asılı olmayaraq həmişə sətir qaytarır.

Sətirin alt sətirlərə bölünməsi

Sətirləri alt sətirlər massivinə bölmək üçün metoddan istifadə edə bilərsiniz bölün ():

Var myString = "gəlir, ayrı, vergüllər"; var substringArray = myString.split(","); // ["gəlir", "ayrı", "at", "the", "vergüllər"] var arrayLimited = myString.split(",", 3); // ["gəlir", "ayrı", "at"]

Sonuncu sətirdə gördüyünüz kimi, funksiyanın ikinci parametri son massivdə olacaq elementlərin sayına məhdudiyyətdir.

Bir simin uzunluğunu əldə etmək

Sətirdə neçə simvol olduğunu tapmaq üçün xassədən istifadə edirik uzunluq:

Var myString = "Siz"tam bir xaraktersiniz."; var stringLength = myString.length; // 25

Sətirdə alt sətirin tapılması

Alt sətiri axtarmaq üçün iki üsul var:

İstifadəsi Indeksi():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

Indeksi() metod sətirin əvvəlindən alt sətir axtarmağa başlayır və alt sətirin ilk baş verməsinin başlanğıcının mövqeyini qaytarır. Bu vəziyyətdə 7 nömrədir.

İstifadəsi lastIndexOf():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Metod sətirdə alt sətirin sonuncu baş verməsinin başlanğıc mövqeyini qaytarır.

Hər iki üsul alt sətir tapılmadıqda -1 qaytarır və hər ikisi axtarışa başlamaq istədiyiniz sətirdəki mövqeyi göstərən isteğe bağlı ikinci arqument alır. Beləliklə, əgər ikinci arqument “5” olarsa, Indeksi() 0-4 simvollarına məhəl qoymadan 5-ci simvolda axtarışa başlayır lastIndexOf() 5-ci simvolda axtarışa başlayır və 6-cı və sonrakı simvollara məhəl qoymadan geriyə doğru gedir.

Alt sətir dəyişdirilməsi

Sətirdə alt sətir baş verməsini başqa bir alt sətirlə əvəz etmək üçün istifadə edə bilərsiniz əvəz():

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Xose Bautista"

Birinci arqument əvəz etmək istədiyiniz şeydir, ikinci arqument isə yeni sətirdir. Funksiya sətirdə yalnız alt sətirin ilk baş verməsini əvəz edir.

Bütün hadisələri əvəz etmək üçün qlobal bayraq ilə müntəzəm ifadədən istifadə etməlisiniz:

Var myString = "O, avtomobil sahilində avtomobil qabıqları satır"; var newString = myString.replace(/automotive/g, "dəniz"); konsol jurnalı (newString); // "Dəniz sahilində dəniz qabıqları satır"

İkinci arqumentə xüsusi şablon və ya funksiya daxil ola bilər. Daha ətraflı oxuya bilərsiniz.

Sətirdə verilmiş mövqedə simvol alın

Funksiyadan istifadə edərək xarakter əldə edə bilərik charAt():

Var myString = "Lələk quşları"; var whatsAtSeven = myString.charAt(7); // "f"

JavaScript-də tez-tez olduğu kimi, sətirdə ilk mövqe 1 deyil, 0-dan başlayır.

Alternativ funksiya olaraq istifadə edə bilərsiniz charCodeAt() simvol kodu olan funksiya.

Var myString = "Lələk quşları"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Qeyd edək ki, "F" simvolunun kodu (11-ci mövqe) "f" simvolunun kodundan (mövqe 7) fərqlidir.

Sətirlərin birləşdirilməsi

Əksər hallarda sətirləri birləşdirmək üçün "+" operatorundan istifadə edə bilərsiniz. Ancaq metoddan da istifadə edə bilərsiniz birləşdirin():

Var stringOne = "Knibb Yüksək futbol"; var stringTwo = stringOne.concat("qaydalar."); // "Knibb Yüksək futbol qaydaları"

Beləliklə, bir çox sətirləri yazıldıqları ardıcıllıqla birləşdirə bilərik:

VarstringOne = "Knibb"; var stringTwo = "Yüksək"; var stringThree = "futbol"; var stringFour = "qaydalar."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb yüksək futbol qaydaları."

Alt sətirin çıxarılması

Başqa bir sətirin bir hissəsindən sətir əldə etməyin 3 yolu var:

İstifadə dilim():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

İstifadə substring():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Hər iki funksiyada birinci parametr alt sətirin başladığı simvoldur (0 mövqeyindən başlayaraq) və ikinci arqument (isteğe bağlı) alt sətirin qaytarıldığı simvol mövqeyidir. Nümunə (5, 10) 5 və 9 mövqeləri arasındakı sətri qaytarır.

İstifadə substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Birinci arqument yeni sətrin başladığı simvol mövqeyi, ikinci arqument isə yeni sətrin başlanğıc mövqeyindən gələn simvolların sayıdır. Bunlar. (5, 10) 5-ci mövqedən başlayaraq 10 simvol qaytarır.

Sətri böyük və ya kiçik hərflərə çevirin.

Tərcümə üçün 4 üsul var. İlk 2 sətri böyük hərfə çevirir:

Var stringOne = "Danış, səni eşidə bilmirəm."; var stringTwo = stringOne.toLocaleUpperCase(); // "DANIŞIN, SİZİ EŞİDƏ BİLƏMƏYƏM" var stringThree = stringOne.toUpperCase(); // "DANIŞ, SƏNİ EŞİDƏ BİLMƏYƏM"

Digər 2 sətri kiçik hərflərə çevirir:

Var stringOne = "SİZ BAĞIRMAYINIZ"; var stringTwo = stringOne.toLocaleLowerCase(); // "qışqırmağa ehtiyac yoxdur" var stringThree = stringOne.toLowerCase(); // "qışqırmağa ehtiyac yoxdur"

Kimi "yerli" üsullardan istifadə etmək daha yaxşıdır müxtəlif yerlərdə, məsələn, Türkiyədə registrlərin göstərilməsi bizim öyrəşdiyimiz kimi tam işləmir və buna görə də nəticə istədiyimiz kimi ola bilər. Əgər "yerli" üsullardan istifadə etsəniz, o zaman belə problemlər olmayacaq.

model uyğunluğu

Sətirdə nümunə uyğunluğu müxtəlif yollarla işləyən 2 üsulla istifadə edilə bilər.

Metod uyğun () sətirə tətbiq edilir və o, parametr kimi müntəzəm ifadə alır:

Var myString = "Odun nə qədər odun çıxara bilərdi"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Odun nə qədər ağac çəngəl edə bilər"

Metod icra() müntəzəm ifadə obyektinə tətbiq edilir və parametr kimi sətir götürür:

Var myString = "Odun nə qədər odun çıxara bilərdi"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Odun nə qədər ağac çuxura bilər"

Hər iki üsul yalnız ilk matçı qaytarır. Uyğunluqlar olmadıqda, geri qaytarılır sıfır.

Metoddan da istifadə edə bilərsiniz axtar(), müntəzəm ifadə qəbul edir və nümunənin ilk uyğunluğunun mövqeyini qaytarır:

Var myString = "Fərz et"; var patternLocation = myString.search(/ume/); // 3

Uyğunluqlar olmasa, geri qayıdır " -1 «.

Çeşidləmə üçün iki sətirin müqayisəsi

Hansının əlifba sırası ilə birinci gəldiyini müəyyən etmək üçün 2 sətri müqayisə edə bilərsiniz. Bunun üçün metoddan istifadə edirik localeCompare(), 3 mümkün dəyəri qaytarır:

Var myString = "toyuq"; var myStringTwo = "yumurta"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (Chrome -2 qaytarır) whichCameFirst = myString.localeCompare("toyuq"); // 0 whichCameFirst = myString.localeCompare("alma"); // 1 (Chrome 2 qaytarır)

Yuxarıda göstərildiyi kimi, sətir arqumenti orijinal sətirdən sonra gəlirsə, mənfi rəqəm qaytarılır. Sətir arqumenti orijinal sətirdən əvvəl gəlirsə, müsbət rəqəm. Qaytarılsa 0 simlərin bərabər olduğunu bildirir.

Qaytarılan dəyəri yoxlamaq üçün if (nəticə< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Diqqətiniz üçün təşəkkür edirəm, ümid edirəm ki, siz çoxlu yeni və maraqlı şeylər öyrənmisiniz!

Məqalənin müəllifi: Alex. Kateqoriya:
Yayım tarixi: 19/03/2013