Deljenje JavaScript stringa

Deljenje stringa se lako obavlja metodom split() string objekta.

s.split(S) Vraća niz delova stringa, odvojenih separatorom S.
"a,b,c".split(",") ---> ["a", "b", "c"]

Metod split() se poziva sa zadatim string parametrom, koji predstavlja "separator" delova. Rezultat je niz stringova - delova originalnog stringa.

Ako je separator nedefinisan, kao rezultat se dobija niz sa samo jednim elementom, a taj element sadrži ceo originalni string.

str.split(separator) str.split(separator, broj delova)
ParametarTipObavezanOpis
separatorstringDAString koji služi kao graničnik za odvajanje delova stringa.
broj delovanumerikNEMaksimalan broj elemenata niza koji se dobija kao rezultat.
RezultatOpis
nizNiz stringova koji predstavljaju delove početnog stringa.

Ako kao separator zadamo prazan string, kao rezultat ćemo dobiti niz znakova originalnog stringa.

Regularni izraz kao separator

Ovde stvari postaju zanimljive. Kao separator je moguće navesti i regularni izraz, što znači da će separatori za delove stringa biti svi podstringovi koji se uklapaju u zadati šablon!

str.split(regEx) str.split(regEx, broj delova)

Deljenje stringa

Da pogledamo prvo neke jednostavnije primere metoda split().


  var prom = "Iskustvo je prosto naziv koji dajemo sopstvenim greškama.";
  var niz1 = prom.split(" ");
  var niz2 = prom.split(" ", 3);
  
  /*
    niz1 = ["Iskustvo", "je", "prosto", "naziv", "koji", "dajemo", "sopstvenim", "greškama."]
    niz2 = ["Iskustvo", "je", "prosto"]
  */
	

U promenljivoj prom zadali smo jednu običnu rečenicu (u stvari aforizam Oskara Vajlda). Prvi niz dobijamo tako što zadajemo deljenje stringa na osnovu razmaka - razmak nam postaje graničnik za "komade". Kod drugog niza smo zadali i drugi parametar koji ograničava broj elemenata dobijenog niza na maksimalno tri.


  "79;96;125;3;51;".split(";");              // ["79", "96", "125", "3", "51", ""]
  "79;96;125;3;51;".slice(0,-1).split(";");  // ["79", "96", "125", "3", "51"]
  
  "JavaScript".split("");  //  ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
  "JavaScript".split();    //  ["JavaScript"]
  
  // odvajanje regularnim izrazom
  "Elementi,su;odvojeni,drugačije".split(/[,;]/);  // ["Elementi", "su", "odvojeni", "drugačije"]
	

U primeru sa brojevima vidimo jednu tipičnu situaciju u kojoj na neki automatizovan način dobijamo niz npr. brojeva koji su odvojeni nekim separatorom (u ovom slučaju to je tačka-zarez). Pri takvoj automatizaciji je vrlo moguće da i posle poslednjeg podatka imamo separator. U tom slučaju, ne zaboravite da ćete dobiti jedan element niza više.

Pogledajte kako smo dobili drugi niz! Prvo smo zadali metod slice nad početnim stringom, a onda iz toga izvukli delove stringa. Kako ovo funkcioniše? Pa jednostavno, poziv "...".slice(0,-1) kreira novi string kao podstring originalnog stringa, kome je odsečen samo poslednji znak (poslednji tačka-zarez koji nam smeta). Pošto je to sve jedan novi, nezavisni string, i on ima sve metode string objekta. Tako možemo da pozovemo "...".slice(0,-1).split(";").

U drugom primeru vidimo da ako se kao separator zada prazan string, rezultat je niz u kome su svi znakovi stringa odvojeni. Sa druge strane, ako se separator ne zada, odnosno ostane nedefinisan, dobijamo niz od samo jednog elementa koji predstavlja sam taj string.

Konačno, na kraju, imamo i primer kako se zadaje separator u obliku regularnog izraza. Imamo situaciju da su podstringovi odvojeni bilo zarezom, bilo tačka-zarezom. Tako zadajemo regularni izraz koij bukvalno znači "zarez ili tačka-zarez" i tako dobijamo niz od četiri elemenata, kako smo i želeli.

js-str-split-sr
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.