Javascript funkcije za rad sa stringovima. Zadaci o funkcijama rada sa stringovima u JavaScriptu. Varijable s literalima predloška

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Kada pišem u javascriptu, često se moram pozvati na tražilice, kako bi se pojasnila sintaksa metoda (i redoslijed, definicija argumenata) koji rade sa stringovima.

U ovom ću članku pokušati dati primjere i opise najčešćih javascript metoda vezanih uz stringove. Najpopularnije metode nalaze se na vrhu članka radi praktičnosti.

Pretvori u niz

Možete pretvoriti broj, Booleovu vrijednost ili objekt u niz.

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

Također možete izvesti sličnu manipulaciju pomoću funkcije string().

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

Nicholas Zakas kaže: "Ako niste sigurni u vrijednost (nula ili nedefinirana), koristite funkciju String(), jer ona vraća niz bez obzira na vrstu varijable."

nedefiniran znači da varijabli nije dodijeljena nikakva vrijednost, a ništavan, - da mu je dodijeljena prazna vrijednost (možemo reći da je null definiran kao prazan objekt).

Podijeliti niz na podnizove

Da biste podijelili niz u niz podnizova, možete koristiti metodu split():

Var myString = "razdvojiti se,kod,zareza"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["dolazi", "odvojeno", "u"]

Kao što zadnji redak sugerira, vrijednost drugog izbornog argumenta određuje broj elemenata u vraćenom nizu.

Dobijte duljinu niza

Pomoću svojstva length možete pronaći broj Unicode znakova u nizu:

Var myString = "Ti si pravi lik."; var stringLength = myString.length; // 25

Definirajte podniz u nizu

Postoje dva načina da ostvarite svoj plan:

Koristite indexOf():

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

Metoda indexOf() traži podniz (prvi proslijeđeni argument) u nizu (od početka niza) i vraća poziciju prvog znaka od kojeg se podniz počeo pojavljivati ​​u nizu.

Koristite lastIndexOf():

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

Metoda lastIndexOf() radi sve isto, osim što traži zadnji podniz koji se pojavljuje u nizu.

Ako podniz nije pronađen, obje metode vraćaju -1. Drugi izborni argument navodi poziciju u nizu na kojoj želite započeti pretraživanje. Dakle, ako je drugi argument metode indexOf() 5, tada će pretraga započeti od 5. znaka, a znakovi 0-4 bit će zanemareni. Za lastIndexOf() , također ako je drugi argument 5, pretraživanje će započeti u suprotnom smjeru, a znakovi 6. i iznad bit će zanemareni.

Kako zamijeniti dio niza

Za zamjenu dijela (ili čak cijelog) niza koristite metodu replace().

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

Prvi argument sadrži dio podniza koji treba zamijeniti; drugi argument je niz koji će zauzeti mjesto podniza koji se zamjenjuje. Zamijenit će se samo prva instanca podniza.

Za zamjenu svih pojavljivanja podniza upotrijebite regularni izraz s oznakom "g".

Var myString = "Ona prodaje automobilske školjke na automobilskoj obali"; var newString = myString.replace(/automotive/g, "more"); console.log(newString); // "Ona prodaje školjke na obali mora"

Drugi argument može uključivati ​​podniz ili funkciju koju treba zamijeniti.

Pronađite lik na zadanoj poziciji

Kako biste saznali koji se znak nalazi na određenoj poziciji, možete koristiti metodu charAt():

Var myString = "Ptice od perja"; var whatsAtSeven = myString.charAt(7); // "f"

Kao što je to često slučaj u javascriptu, prva pozicija počinje od 0, a ne od 1.

Alternativno, možete koristiti metodu charCodeAt(), ali umjesto samog znaka, dobit ćete njegov kod.

Var myString = "Ptice od perja"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Imajte na umu da se kod za veliko slovo (pozicija 11) razlikuje od koda za isto slovo napisano malo (pozicija 7).

Ulančavanje nizova u javascriptu

Za spajanje nizova uglavnom ćete koristiti (+) operator. Ali također možete ulančati nizove pomoću metode concat().

Var stringOne = "Knibb Visoki nogomet"; var stringTwo = stringOne.concat("pravila."); // "Knibb High nogometna pravila"

Više nizova može se proslijediti u concat(), a rezultirajući niz će se pojaviti redoslijedom kojim su dodani metodi concat().

Var stringOne = "Knibb"; var stringTwo = "Visoko"; var stringThree = "nogomet"; var stringFour = "pravila."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibbova visoka nogometna pravila."

Dio niza (izdvoj podniz u javascriptu)

Postoje tri različiti putevi stvoriti novi niz "izvlačenjem" dijela podniza iz postojećeg niza.

Korištenje slice() :

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

Korištenje substring() :

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

Za obje metode (slice() i substring()), prvi argument je položaj znaka na kojem podniz počinje (brojeći od 0), drugi argument je položaj znaka na kojem podniz završava, a znak određen u drugom argumentu nije uključen u vraćeni podniz.

Korištenje substr():

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

Za substr metodu, prvi argument također specificira položaj znaka na kojem substring počinje. Drugi argument nije obavezan. Ali u isto vrijeme, drugi argument određuje broj znakova koji bi trebali biti uključeni u podniz, počevši od pozicije koju smo već definirali u prvom argumentu. Ova tehnika je dobro ilustrirana u gornjem primjeru.

Pretvaranje niza u mala ili velika slova u javascriptu

Postoje četiri metode za izvođenje potrebnih pretvorbi. Dva za pretvaranje znakova niza u velika slova.

Var stringOne = "Govori, ne čujem te."; var stringTwo = stringOne.toLocaleUpperCase(); // "GOVORI, NE ČUJEM TE" var stringThree = stringOne.toUpperCase(); // "GOVORI, NE ČUJEM TE"

I dva za pretvaranje niza u mala slova:

Var stringOne = "NE MORAŠ VIKATI"; var stringTwo = stringOne.toLocaleLowerCase(); // "ne moraš vikati" var stringThree = stringOne.toLowerCase(); // "ne moraš vikati"

Općenito, ne postoji razlika između lokalne metode i metode koja nije lokalna, međutim, "za neke jezike, kao što je turski, čija velika i mala slova ne slijede utvrđena velika i mala slova Unicode, posljedice korištenja metode koja nije lokalna mogu budi drugačiji." Stoga slijedite sljedeće pravilo: "ako ne znate jezik na kojem će se kod izvoditi, sigurnije je koristiti lokalne metode."

Uparivanje uzorka u javascriptu

Možete provjeriti prisutnost uzorka u nizu pomoću 2 metode.

Metoda match() poziva se na string objektu, prosljeđujući regularni izraz kao argument metodi match().

Var myString = "Koliko bi drva mogla stezaljka za drvo"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Koliko bi drva mogla stezaljka za drvo"

Metoda exec() poziva se na objektu RegExp, prosljeđujući niz kao argument:

Var myString = "Koliko bi drva mogla stezaljka za drvo"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Koliko bi drva moglo biti stegnuto"

Obje metode vraćaju prvo pojavljivanje koje odgovara. Ako se ne pronađu podudaranja, vratit će se NULL. Ako regularni izraz Ako je zastavica "g" prisutna, rezultat će biti niz koji sadrži sva podudaranja.

Također možete koristiti metodu search(), koja uzima regularni izraz kao argument i vraća početnu poziciju prvog podudarnog uzorka.

Var myString = "Pretpostavi"; var patternLocation = myString.search(/ume/); // 3

Ako nema rezultata, metoda će vratiti -1.

Uspoređivanje dva niza za kasnije sortiranje

Za usporedbu dva niza na temelju redoslijeda sortiranja lokalne oznake, možete koristiti metodu localeCompare. Metoda localeCompare vraća tri moguće vrijednosti.

MyString = "kokoš"; var myStringTwo = "jaje"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (osim Chromea, koji vraća -2) whichCameFirst = myString.localeCompare("chicken"); // 0 whichCameFirst = myString.localeCompare("jabuka"); // 1 (Chrome vraća 2)

Kao što je gore prikazano, bit će vraćeno negativno značenje, ako izvorni niz dolazi prije argumenta niza kada se sortira, ako argument niza dolazi nakon izvornog niza kada se sortira, vraća se vrijednost +1. Ako se vrati null, dva niza su ekvivalentna.

Kao semantički “okvir” za korištenje funkcija i konstrukcija za obradu nizova, od posebnog su interesa za programiranje procesa obrade informacija prema njihovom semantičkom sadržaju. Na jeziku JavaScript funkcije operacije s nizovima mogu se kombinirati u vlastite semantičke konstrukcije, pojednostavljujući kod i formalizirajući predmetno područje zadatka.

U klasičnoj verziji, obrada informacija prvenstveno je niz funkcija. Svaka funkcija i konstrukcija jezika ima svoje karakteristike u sintaksi i semantici JavaScripta. Metode za rad s nizovima ovdje imaju svoj vlastiti stil, ali u uobičajenoj upotrebi to je samo sintaksa unutar jednostavne semantike: pretraživanje, zamjena, umetanje, izdvajanje, konotacija, promjena velikih i velikih slova...

Opis string varijabli

Da biste deklarirali niz, upotrijebite konstrukciju var. Njegovu vrijednost možete odmah postaviti ili generirati tijekom izvođenja algoritma. Za niz možete koristiti jednostruke ili dvostruke navodnike. Ako mora sadržavati navodnik, mora biti označen znakom "\".

Navedeni redak zahtijeva izbjegavanje unutarnjih dvostrukih navodnika. Isto tako, onaj označen jednostrukim navodnicima kritičan je za prisutnost jednostrukih navodnika unutra.

U ovom primjeru, redak “str_dbl” navodi korisne Posebni simboli, koji se može koristiti u nizu. U ovom slučaju, sam znak “\” je izbjegnut.

String je uvijek niz

JavaScript može raditi s nizovima na razne načine. Sintaksa jezika nudi mnogo opcija. Prije svega, nikako ne treba zaboraviti da (u kontekstu opisa):

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

To jest, znakovi u nizu dostupni su kao elementi niza, pri čemu je svaki poseban znak jedan znak. Bježanje je element sintakse. Nikakav "ekran" nije postavljen na stvarnu liniju.

Korištenje funkcije charAt() ima sličan učinak:

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

Programer može koristiti bilo koju opciju.

Osnovne funkcije niza

U JavaScriptu se to radi malo drugačije nego u drugim jezicima. Nakon naziva varijable (ili samog niza) slijedi naziv funkcije, odvojen točkom. Obično se funkcije niza nazivaju metodama u stilu sintakse jezika, ali prva je riječ poznatija.

Najvažnija metoda niza (točnije, svojstva) je njegova duljina.

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

Rezultat: 11/12/175 prema recima gornjeg opisa.

Najvažniji par funkcija niza je dijeljenje niza u niz elemenata i spajanje niza u niz:

  • split(s [, l]);
  • pridružiti se(ima).

U prvom slučaju, niz se dijeli znakom razgraničenja “s” u niz elemenata u kojem broj elemenata ne prelazi vrijednost “l”. Ako količina nije navedena, cijeli red je prekinut.

U drugom slučaju, niz elemenata se spaja u jedan red kroz zadani graničnik.

Značajna značajka ovog para: razdvajanje se može izvršiti pomoću jednog separatora, a spajanje pomoću drugog. U tom kontekstu u rad JavaScripta s nizovima se mogu "iznijeti izvan" sintakse jezika.

Klasične funkcije niza

Uobičajene funkcije obrade nizova:

  • traži;
  • uzorak;
  • zamjena;
  • transformacija.

Predstavljen metodama: indexOf(), lastIndexOf(), toLowerCase(), toUpperCase(), concan(), charCodeAt() i drugima.

U JavaScriptu je rad s nizovima predstavljen velikom raznolikošću funkcija, ali one se ili dupliraju ili su ostavljene za stare algoritme i kompatibilnost.

Na primjer, korištenje metode concat() je prihvatljivo, ali je lakše napisati:

  • str = str1 + str2 + str3;

Korištenje funkcije charAt() također ima smisla, ali korištenje charCodeAt() ima stvarno praktično značenje. Slično, za JavaScript prijelom retka ima posebno značenje: u kontekstu prikazivanja, na primjer, u poruci upozorenja () to je “\n”, u konstrukciji generiranja sadržaja stranice to je “
" U prvom slučaju to je samo znak, au drugom je to niz znakova.

Nizovi i regularni izrazi

U JavaScriptu rad s nizovima uključuje mehanizam regularnog izraza. Ovo omogućuje izvođenje složenih pretraživanja, dohvaćanja i konverzija nizova unutar preglednika bez kontaktiranja poslužitelja.

metoda odgovarati nalazi, i zamijeniti zamjenjuje pronađeno podudaranje sa željenom vrijednošću. Regularni izrazi implementirani su u JavaScript na visokoj razini, inherentno su složeni, a zbog specifičnosti svoje primjene prebacuju težište sa poslužitelja na klijentov preglednik.

Prilikom primjene metoda utakmica, traženje I zamijeniti Ne biste trebali samo posvetiti dužnu pozornost testiranju u cijelom rasponu prihvatljivih vrijednosti početnih parametara i nizova pretraživanja, već i procijeniti opterećenje preglednika.

Primjeri regularnih izraza

Opseg regularnih izraza za obradu nizova je opsežan, ali zahtijeva veliku brigu i pozornost programera. Prije svega, regularni izrazi se koriste pri testiranju korisničkog unosa u polja obrasca.

Ovdje su funkcije koje provjeravaju sadrži li ulaz cijeli (schInt) ili realni broj (schReal). Sljedeći primjer pokazuje koliko je učinkovito obraditi nizove provjeravanjem samo valjanih znakova: schText - samo tekst, schMail - valjana adresa e-pošte.

Vrlo je važno imati na umu da u JavaScript simboli i nizovi zahtijevaju povećanu pozornost na lokalizaciju, osobito kada trebate raditi s ćirilicom. U mnogim slučajevima preporučljivo je naznačiti pravi kodovi simbole, a ne njihova značenja. To se prvenstveno odnosi na ruska slova.

Posebno treba napomenuti da nije uvijek potrebno izvršiti zadatak kako je postavljen. Konkretno, što se tiče provjere cijelih i realnih brojeva: ne možete proći s klasičnim metodama niza, već s uobičajenim konstrukcijama sintakse.

Objektno orijentirani nizovi

U JavaScriptu je rad s nizovima predstavljen širokim rasponom funkcija. Ali to nije dobar razlog da ih koristite u izvornom obliku. Sintaksa i kvaliteta funkcija su besprijekorni, ali to je jedno rješenje za sve.

Svaka uporaba string funkcija uključuje obradu pravog značenja, koje je određeno podacima, opsegom primjene i specifičnom svrhom algoritma.

Idealno rješenje uvijek je tumačenje podataka prema njihovom značenju.

Predstavljanjem svakog parametra kao objekta, možete formulirati funkcije za rad s njim. Uvijek govorimo o obradi simbola: brojevi ili nizovi su nizovi simbola organizirani na određeni način.

Postoje opći algoritmi, a postoje i privatni. Na primjer, prezime ili kućni broj su nizovi, ali ako su u prvom slučaju dopuštena samo ruska slova, onda su u drugom slučaju dopušteni brojevi, ruska slova, a mogu postojati i crtice ili indeksi odvojeni kosom crtom. Indeksi mogu biti abecedni ili numerički. Kuća može imati zgrade.

Nije uvijek moguće predvidjeti sve situacije. Ovo je važna točka u programiranju. Rijetko koji algoritam ne zahtijeva modifikaciju, au većini slučajeva potrebno je sustavno prilagođavati funkcionalnost.

Formalizacija obrađenih linijskih informacija u obliku objekta poboljšava čitljivost koda i omogućuje njegovo dovođenje na razinu semantičke obrade. Ovo je drugačiji stupanj funkcionalnosti i značajno najbolja kvaliteta kod s većom pouzdanošću razvijenog algoritma.

Kad pišeš JavaScript, vrlo često morate surfati internetom u potrazi za informacijama o sintaksi i parametrima za metode koje rade s nizovima.

Pročitao sam puno članaka o radu s nizovima. Ovaj će post pokazati primjere i kratki opisi najčešće metode za rad sa stringovima. Pokušao sam staviti najčešće metode na vrh za brzu referencu.

Naravno, većina iskusnih programera već će biti prilično upoznata s mnogim tehnikama, ali mislim da je ovo dobar popis za početnike da razumiju niz tehnika koje mogu pomoći u izvršavanju složenih operacija jednostavnim sredstvima.

Pretvaranje u niz

Možete pretvoriti broj, booleov izraz ili objekt u niz:

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

Možete to učiniti na isti način s Niz():

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

Ako niste sigurni koja vrijednost nije ništavan ili nedefiniran, možeš koristiti Niz(), koji uvijek vraća niz, bez obzira na vrstu vrijednosti.

Rastavljanje niza na podnizove

Za razdvajanje nizova u niz podnizova možete koristiti metodu podjela():

Var myString = "razdvojiti se,kod,zareza"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["dolazi", "odvojeno", "u"]

Kao što se vidi u zadnji redak, drugi parametar funkcije je ograničenje broja elemenata koji će biti u konačnom nizu.

Dobivanje duljine niza

Da bismo pronašli koliko znakova ima niz, koristimo svojstvo duljina:

Var myString = "Ti si pravi lik."; var stringLength = myString.length; // 25

Pronalaženje podniza u nizu

Postoje dvije metode za traženje podniza:

Korištenje indexOf():

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

indexOf() Metoda započinje traženje podniza od početka niza i vraća poziciju početka prvog pojavljivanja podniza. U ovom slučaju - 7. pozicija.

Korištenje lastIndexOf():

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

Metoda vraća početnu poziciju posljednjeg pojavljivanja podniza u nizu.

Obje metode vraćaju -1 ako podniz nije pronađen, a obje uzimaju izborni drugi argument koji označava poziciju u nizu gdje želite započeti pretragu. Dakle, ako je drugi argument "5", indexOf() započinje pretragu od znaka 5, zanemarujući znakove 0-4, dok lastIndexOf() započinje pretragu od znaka 5 i radi unatrag, zanemarujući znakove 6 i dalje.

Zamjena podniza

Da biste zamijenili pojavljivanje podniza u nizu drugim podnizom, možete koristiti zamijeniti():

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

Prvi argument je ono što želite zamijeniti, a drugi argument je novi red. Funkcija zamjenjuje samo prvo pojavljivanje podniza u nizu.

Da biste zamijenili sva pojavljivanja, morate koristiti regularni izraz s globalnom zastavom:

Var myString = "Ona prodaje automobilske školjke na automobilskoj obali"; var newString = myString.replace(/automotive/g, "more"); console.log(newString); // "Ona prodaje školjke na obali mora"

Drugi argument može uključivati ​​poseban predložak ili funkciju. Možete pročitati više.

Dobivanje znaka na zadanoj poziciji u nizu

Pomoću funkcije možemo dobiti simbol charAt():

Var myString = "Ptice od perja"; var whatsAtSeven = myString.charAt(7); // "f"

Kao što je to često slučaj u JavaScriptu, prva pozicija u nizu počinje s 0, a ne s 1.

Kao alternativnu funkciju možete koristiti charCodeAt() funkcija, što je kod znaka.

Var myString = "Ptice od perja"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Imajte na umu da se kod za znak "F" (pozicija 11) razlikuje od koda za znak "f" (pozicija 7).

Ulančavanje nizova

U većini slučajeva možete koristiti operator "+" za spajanje nizova. Ali također možete koristiti metodu concat():

Var stringOne = "Knibb Visoki nogomet"; var stringTwo = stringOne.concat("pravila."); // "Knibb High nogometna pravila"

Na ovaj način možemo kombinirati mnoge retke u jedan redoslijedom kojim su napisani:

Var stringOne = "Knibb"; var stringTwo = "Visoko"; var stringThree = "nogomet"; var stringFour = "pravila."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibbova visoka nogometna pravila."

Ekstrakcija podniza

Postoje 3 načina za dobivanje niza iz dijela drugog niza:

Korištenje kriška():

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

Korištenje podniz():

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

U obje funkcije, prvi parametar je znak na kojem podniz počinje (počevši od pozicije 0), a drugi argument (neobavezno) je položaj znaka do kojeg se podniz vraća. Primjer (5, 10) vraća niz između pozicija 5 i 9.

Korištenje substr():

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

Prvi argument je položaj znaka na kojem počinje novi red, a drugi argument je broj znakova od početne pozicije novog retka. Oni. (5, 10) vraća 10 znakova, počevši od pozicije 5.

Pretvorite niz u velika ili mala slova.

Postoje 4 metode za prevođenje. Prva dva pretvaraju niz u velika slova:

Var stringOne = "Govori, ne čujem te."; var stringTwo = stringOne.toLocaleUpperCase(); // "GOVORI, NE ČUJEM TE" var stringThree = stringOne.toUpperCase(); // "GOVORI, NE ČUJEM TE"

Druga 2 pretvaraju niz u mala slova:

Var stringOne = "NE MORAŠ VIKATI"; var stringTwo = stringOne.toLocaleLowerCase(); // "ne moraš vikati" var stringThree = stringOne.toLowerCase(); // "ne moraš vikati"

Bolje je koristiti metode "locale", jer... na različitim mjestima, na primjer, u Turskoj, prikaz registara ne radi baš onako kako smo navikli i stoga rezultat može biti onakav kakav smo željeli. Ako koristite metode "locale", tada neće biti takvih problema.

Usklađivanje uzoraka

Usklađivanje uzorka na nizu može se izvršiti pomoću 2 metode koje rade različito.

metoda odgovara() primjenjuje se na niz i uzima regularni izraz kao parametar:

Var myString = "Koliko bi drva mogla stezaljka za drvo"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Koliko bi drva mogla stezaljka za drvo"

metoda exec() primjenjuje se na objekt regularnog izraza i uzima niz kao parametar:

Var myString = "Koliko bi drva mogla stezaljka za drvo"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Koliko drva bi drvena glava mogla stegnuti"

U obje metode vraća se samo prvo podudaranje. Ako nema podudaranja, vraća se ništavan.

Također možete koristiti metodu traži() koji uzima regularni izraz i vraća poziciju prvog podudaranja u uzorku:

Var myString = "Pretpostavi"; var patternLocation = myString.search(/ume/); // 3

Ako nije bilo utakmica, " -1 «.

Uspoređivanje dva niza za sortiranje

Možete usporediti 2 niza kako biste odredili koji je prvi u abecedi. Da bismo to učinili, koristit ćemo metodu localeCompare() koji vraća 3 moguće vrijednosti:

Var myString = "kokoš"; var myStringTwo = "jaje"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (Chrome vraća -2) whichCameFirst = myString.localeCompare("chicken"); // 0 whichCameFirst = myString.localeCompare("jabuka"); // 1 (Chrome vraća 2)

Kao što je gore prikazano, negativan broj se vraća ako argument niza dolazi nakon originalnog niza. Pozitivan broj, ako argument niza dolazi prije originalnog niza. Ako se vrati 0 - znači da su linije jednake.

Za provjeru povratne vrijednosti bolje je koristiti if (result< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Hvala vam na pažnji, nadam se da ste naučili puno novih i zanimljivih stvari!

Autor članka: Alex. Kategorija:
Datum objave: 19.03.2013

Pozdrav svima koji su temeljito odlučili učiti jezik orijentiran na prototip. Prošli put sam vam pričao o tome, a danas ćemo pogledati JavaScript nizovi. Budući da su u ovom jeziku svi tekstualni elementi nizovi (ne postoji poseban format za znakove), možete pretpostaviti da ovaj odjeljak zauzima značajnu ulogu u učenju js sintakse.

Zato ću vam u ovoj publikaciji reći kako se stvaraju elementi niza, koje su im metode i svojstva dostupna, kako pravilno pretvoriti nizove, na primjer, pretvoriti u broj, kako možete izdvojiti željeni podniz i još mnogo toga. Uz ovo ću priložiti primjere programski kod. Sada se bacimo na posao!

Sintaksa varijable niza

U js jeziku, sve varijable su deklarirane pomoću ključna riječ var, a zatim se ovisno o formatu parametara određuje tip deklarirane varijable. Kao što se sjećate iz JavaScripta, nema snažnog tipkanja. Zato postoji ovakva situacija u zakoniku.

Prilikom inicijalizacije varijabilne vrijednosti može se uokviriti u dvostruke, jednostruke, a od 2015. i u ukošene jednostruke navodnike. U nastavku sam priložio primjere svake metode deklariranja nizova.

Želim obratiti posebnu pozornost na treću metodu. Ima niz prednosti.

Uz njegovu pomoć možete jednostavno izvršiti prijelom retka i izgledat će ovako:

upozorenje(`nekoliko

prenosim

I treća metoda vam omogućuje korištenje $(...) konstrukcije. Ovaj alat je potreban za umetanje interpolacije. Ne brinite, sada ću vam reći što je to.

Zahvaljujući $(…) možete umetati ne samo vrijednosti varijabli u retke, već i izvoditi aritmetičke i logičke operacije, metode poziva, funkcije itd. Sve se to naziva jednim pojmom – interpolacija. Pogledajte primjer implementacije ovog pristupa.

1 2 3 var olovka = 3; var olovka = 1; upozorenje(`$(olovka) + $(olovka*5) = $(olovka + olovka)`);

var olovka = 3; var olovka = 1; upozorenje(`$(olovka) + $(olovka*5) = $(olovka + olovka)`);

Kao rezultat toga, na ekranu će se prikazati izraz "3 + 1*5 = 8".

Što se tiče prva dva načina deklariranja nizova, u njima nema razlike.

Razgovarajmo malo o posebnim znakovima

Mnogi programski jezici imaju posebne znakove koji pomažu u manipuliranju tekstom u nizovima. Najpoznatiji među njima je prijelom retka (\n).

Svi slični alati inicijalno počinju obrnutom kosom crtom (\) i slijede slova engleske abecede.

U nastavku sam priložio malu tablicu koja navodi neke posebne znakove.

Opskrbljujemo se velikim arsenalom metoda i svojstava

Programeri jezika osigurali su mnoge metode i svojstva za pojednostavljenje i optimizaciju rada sa nizovima. A s izdavanjem novog standarda pod nazivom ES-2015 prošle godine, ovaj je popis nadopunjen novim alatima.

Duljina

Počet ću s najpopularnijim svojstvom, koje pomaže saznati duljinu vrijednosti string varijabli. Ovaj duljina. Koristi se na ovaj način:

var string = "Jednorozi";

upozorenje(string.duljina);

Odgovor će prikazati broj 9. Ovo se svojstvo također može primijeniti na same vrijednosti:

"Jednorozi".duljina;

Rezultat se neće promijeniti.

charAt()

Ova metoda omogućuje izdvajanje određenog znaka iz teksta. Podsjetit ću vas da numeriranje počinje od nule, pa da biste izdvojili prvi znak iz niza, morate napisati sljedeće naredbe:

var string = "Jednorozi";

upozorenje(string.charAt(0));.

Međutim, rezultirajući rezultat neće biti vrsta znaka; on će se i dalje smatrati nizom od jednog slova.

Od doLowerCase() do UpperCase()

Ove metode kontroliraju velika i mala slova znakova. Prilikom pisanja koda "Sadržaj".

doUpperCase() cijela riječ bit će prikazana velikim slovima.

Za suprotan učinak, trebali biste koristiti "Sadržaj". malim slovima().

indexOf()

Popularan i neophodan alat za traženje podnizova. Kao argument potrebno je unijeti riječ ili frazu koju želite pronaći, a metoda vraća poziciju pronađenog elementa. Ako traženi tekst nije pronađen, korisniku se vraća “-1”.

1 2 3 4 var text = "Organizirajte traženje cvijeća!"; upozorenje(text.indexOf("boja")); //19 upozorenje(text.indexOf(" ")); //12 upozorenje(text.lastIndexOf(" ")); //18

var text = "Organizirajte traženje cvijeća!"; upozorenje(text.indexOf("boja")); //19 upozorenje(text.indexOf(" ")); //12 upozorenje(text.lastIndexOf(" ")); //18

Imajte na umu da lastIndexOf() radi istu stvar, samo što pretražuje od kraja rečenice.

Ekstrakcija podniza

Za ovu akciju u js-u su stvorene tri približno identične metode.

Pogledajmo to prvo podniz (početak, kraj) I isječak (početak, kraj). Rade isto. Prvi argument definira početnu poziciju s koje će započeti izvlačenje, a drugi je odgovoran za konačnu točku zaustavljanja. U obje metode, niz se izdvaja bez uključivanja znaka koji se nalazi na krajnjoj poziciji.

var text = "Atmosfera"; upozorenje(tekst.podniz(4)); // prikazat će upozorenje “sfere”(text.substring(2, 5)); //prikaži "mos" upozorenje(text.slice(2, 5)); //prikaži "mos"

Sada pogledajmo treću metodu, koja se zove substr(). Također treba sadržavati 2 argumenta: početak I duljina.

Prvi određuje početnu poziciju, a drugi broj znakova koje treba izdvojiti. Kako bih pratio razlike između ova tri alata, upotrijebio sam prethodni primjer.

var text = "Atmosfera";

upozorenje(tekst.substr(2, 5)); //prikaži "mosfe"

Koristeći navedene načine uzimanja podnizova, možete ukloniti nepotrebne znakove iz novih elemenata retka s kojima program tada radi.

Odgovor()

Ova metoda pomaže u zamjeni znakova i podnizova u tekstu. Također se može koristiti za implementaciju globalnih zamjena, ali da biste to učinili morate uključiti regularne izraze.

Ovaj primjer će zamijeniti podniz samo u prvoj riječi.

var text = "Atmosfera Atmosfera"; var newText = text.replace("Atmo","Strato") alert(newText) // Rezultat: atmosfera stratosfere

I u ovome implementacija softvera Zbog oznake regularnog izraza "g", izvršit će se globalna zamjena.

var text = "Atmosfera Atmosfera"; var newText = text.replace(/Atmo/g,"Strato") alert(newText) // Rezultat: Stratosfera Stratosfera

Napravimo pretvorbu

JavaScript nudi samo tri vrste pretvorbe tipa objekta:

  1. numerički;
  2. Niz;
  3. Booleov.

U ovoj publikaciji govorit ću o 2 od njih, budući da je znanje o njima potrebnije za rad sa žicama.

Numerička konverzija

Za eksplicitno pretvaranje vrijednosti elementa u numerički oblik, možete koristiti Broj (vrijednost).

Postoji i kraći izraz: +"999".

var a = Broj("999");

Pretvorba niza

Izvršava funkcija uzbuna, kao i eksplicitni poziv Niz (tekst).

Pozdrav svima i sretna nova godina. Ići! Počet ćemo gledajući svojstvo length, koje nam omogućuje brojanje broja znakova u nizu:

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.length);

Kao što vidite, konzola prikazuje rezultat, broj znakova u retku (54).

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.charAt(7));

Koristeći metodu charAt(), možemo dobiti znak niza na zadanoj poziciji; u našem slučaju, dobivamo znak "i" na 7. mjestu. Imajte na umu da izvješće o poziciji linije počinje od nule. Na primjer, ako želimo dobiti prvi znak niza:

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; str.charAt(0);

ovdje ćemo vratiti "m". Također postoji slična metoda charCodeAt() RADI TOČNO KAO charAt(), ali ne vraća sam znak, već njegov kod.

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.charCodeAt(0));

Kôd za znak "m" (1084) će nam biti vraćen.

Metoda charAt() je korisna za izdvajanje jednog znaka iz niza, ali ako želimo dobiti skup znakova (podniz), onda su sljedeće metode prikladne za tu svrhu:

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.slice(8,17));

metoda kriške() vraća podniz ("svojstva"), uzimajući kao argumente dvije numeričke vrijednosti, početni i završni indeks podniza. Druga slična metoda je substr():

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.substr(8,17));

ovdje ćemo dobiti natrag podniz (“properties for slave”), prvi argument je početna pozicija, a drugi je broj znakova u podnizu. Zatim ćemo pogledati metode za rad s malim i velikim slovima u nizovima.

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; console.log(str.toUpperCase());

metoda toUpperCase() vraća nam niz u kojem su svi znakovi velika slova, odnosno velikim slovima.

Var str = "MBA"; console.log(str.toLowerCase());

metoda toLowerCase() vraća nam niz gdje su svi znakovi mala slova.

Da bismo pronašli podniz u nizu, možemo koristiti metodu indexOf():

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; document.write(str.indexOf("radi"));

ovu metodu uzima kao argument podniz koji želimo pronaći u nizu i ako ga pronađe, vraća se pozicija na kojoj je pronađeno podudaranje. Ako ovaj podniz nije sadržan u nizu, tada:

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; document.write(str.indexOf("work"));

dobit ćemo vrijednost -1. Primjer:

Var str = "metode i svojstva za rad s nizovima u javaScriptu", sub = "work"; funkcija indexOf(str, substr) ( if (str.indexOf(substr) === -1) ( return "Ovaj podniz ""+substr+"" nije sadržan u nizu ""+str+"""; ) else( index = str.indexOf(substr) return "Podniz ""+substr+"" pronađen na poziciji "+index; ) ) document.write(indexOf(str,sub));

Ovdje smo napisali malu funkciju indexOf(str,sub) koja uzima string(str) i substring(sub) kao argumente i pomoću metode indexOf() provjerava prisutnost podniza u nizu i vraća poruka o rezultatu. Napominjem da metoda indexOf() vraća položaj podniza u odnosu na početak niza, odnosno od nultog indeksa.

Ako želimo pronaći položaj podniza u odnosu na kraj, tada možemo koristiti funkciju lastIndexOf().

Metoda trim() omogućuje vam uklanjanje razmaka s početka i kraja niza, recimo da imamo sljedeći niz:

Var str = "metode i svojstva za rad s nizovima u javaScriptu"; konzola.log(str);

i želimo ukloniti razmake na početku i kraju:

Console.log(str.trim());

nakon što upotrijebimo metodu trim(), razmaci s kraja i početka niza bit će uspješno uklonjeni.

Pa, to je u biti sve što sam vam htio reći o radu s nizovima u JavaScriptu. Naravno, postoje i metode za ulančavanje i usporedbu nizova, ali ih nećemo razmatrati, jer se te metode lako zamjenjuju standardnim operatorima.

Čestitam vam nadolazeću Novu godinu, želim vam sreću, zdravlje, uspjeh, ljubav i naravno puno sreće! Pozdrav!



reci prijateljima
Pročitajte također