JavaScript - String objekti
Sada ide zeznuta stvar. U JavaScript-u se svi podaci dele na dve grupe - primitivne (ili proste) tipove i objekte. Zašto nam je to sada bitno? Zato što postoje obični stringovi, ali postoje i Stringovi, odnosno string objekti.
Ako se pitate da li nam uopšte trebaju ti komplikovani string objekti, dgovor je - da, i to jako često. U svakom malo složenijem programu biće nam potrebno da pronađemo neki deo teksta unutar stringa, da izdvojimo deo stringa ili makar samo proverimo koliko je string dugačak. Sve to nam omogućava string objekat, što nam kao programerima veoma olakšava život!
s.length |
Dužina stringa izražena brojem znakova "abc".length == 3 |
s.concat(S) |
Vraća string koji je nastao povezivanjem stringa s i S "abc".concat("xyz") == "abcxyz" (isto kao "abc" + "xyz") |
s.trim() |
Uklanja razmake sa početka i kraja stringa. " abc ".trim() == "abc" |
s.toUpperCase() |
Sva slova u stringu pretvara u velika slova. "Abc".toUpperCase() == "ABC" |
s.toLowerCase() |
Sva slova u stringu pretvara u mala slova. "Abc".toLowerCase() == "abc" |
s.indexOf(T) |
Prva pozicija podstringa T. "Mima snima sve".indexOf("ima") == 1 |
s.lastIndexOf(T) |
Poslednja pozicija podstringa T. "Mima snima sve".lastIndexOf("ima") == 7 |
s.search(R) |
Prva pozicija podstringa koji se uklapa u regularni izraz R. "Ana je znala da je Aca namazao džem".search(/a.a/) == 9 |
s.match(R) |
Pronalazi jedan ili više podstringova za zadati regularni izraz R. "Ana je znala da je Aca namazao džem".match(/a.a/g) vraća ["ala", "ama"] |
s.substr(P, D) |
Vraća podstring počev od pozicije P, dužine D. "abcdef".substr(2,4) == "cdef" |
s.substring(P, K) |
Vraća podstring počev od pozicije P, do pozicije K (bez K-tog znaka). "abcdef".substring(2,4) == "cd" |
s.slice(P, K) |
Vraća podstring počev od pozicije P, do pozicije K (bez K-tog znaka). "abcdef".slice(2,4) == "cd" |
s.split(S) |
Vraća niz delova stringa, odvojenih separatorom S. "Mima snima sve".split(" ") vraća ["Mima", "snima", "sve"] |
s.replace(S, R) |
Menja pronađeni podstring S novim tekstom R "Mima snima sve".replace("ima", "oca") == "Moca snima sve" |
s.charAt(P) |
Vraća znak na poziciji P. "abcdef".charAt(2) == "c" |
s.charCodeAt(P) |
Vraća Unicode kod znaka na poziciji P. "abcdef".charCodeAt(2) == 99 |
String.fromCharCode(C1) |
Vraća string na osnovu jednog ili više zadatih Unicode kodova. String.fromCharCode(97,99) == "ac" |
Da li je teško napraviti string objekat?
Pa i nije, samo bismo morali malo više da kucamo. Evo primera kreiranja pravog "punokrvnog" string objekta:
var prom = new String("Ovo je novi string");
var x = prom.length;
String objekat nam u ovom primeru omogućava da u promenljivoj x dobijemo dužinu stringa. Međutim, ne moramo zaista da kreiramo string objekat na ovaj način svaki put kada nam zatreba neka operacija nad stringom.
Stvar je u tome da se prosti tipovi mogu "objektizovati", odnosno umotati u objekat u onom trenutku kada se u programu ukaže potreba za time. Najlepše od svega što mi o tome ne moramo da brinemo.
var prom = "Ovo je novi string"; // običan string
var x = prom.length; // običan string nakratko "postaje" objekat
Ako tek počinjete sa programiranjem, sveo ovo vam može delovati malo komplikovano. Kada se budemo malo bolje upoznali sa objektima u JavaScript-u, vratite se na ovaj deo teksta.