Načrtovanje in razvoj spletnih aplikacij

Razred String

Razred String je objektna različica primitivnega tipa string. Vsebuje lastnosti in metode za delo z nizi. Vse lastnosti in metode lahko uporabljamo kar na primitivnem tipu string. JavaScript bo v takem primeru vrednost tipa string pretvoril v začasen objekt razreda String, vrnil ali nastavil vrednost ustrezne lastnosti, nato pa uničil začasni objekt. Indeks prvega znaka v nizu je 0.

Konstruktor niza

Konstruktor Opis
String() Sestavi nov objekt razreda String, ki vsebuje prazen niz.
String(str) Sestavi nov objekt razreda String, ki vsebuje niz str.

Lastnosti niza

Metoda Opis
constructor Vrne funkcijo, ki sestavi nov objekt razreda String.
length Vrne dolžino niza.
prototype Omogoča dodajanje lastnosti in metod objektom

length

Dolžino niza ugotovimo z vgrajeno lastnostjo length:

<p id="primer"></p>
<script> 
   var txt = "Dolžina niza."; 
   document.getElementById("primer").innerHTML = txt.length; 
</script>

Metode niza

Metoda Opis
charAt(index) Vrne znak na določenem indeksu (položaju). Če je indeks negativen, večji ali enak dolžini niza, metoda vrne prazen niz.
charCodeAt(index) Vrne Unicode kodo znaka na določenem indeksu. Če je indeks negativen, večji ali enak dolžini niza, metoda vrne število NaN.
concat() Vrne niz, ki ga sestavi iz dveh ali več nizov, ki jih dobi za parametre.
fromCharCode() Pretvori vrednost Unicode znaka v znak.
indexOf() Vrne položaj prve pojavitve določene vrednosti niza.
lastIndexOf() Vrne index zadnje pojavitve določene vrednosti v nizu od mesta index naprej. Če je indeks nedefiniran, išče do konca niza. Če iskanega niza ne najde, vrne -1.
localCompare() Vrne rezultat primerjave niza z nizom. Če sta niza enaka, vrne 0, če je prvi niz manjši od drugega niza, vrne negativno vrednost, sicer pa vrne pozitivno vrednost. Niza primerja glede na regionalne nastavitve operacijskega sistema.
match(RegExp) Išče niz za tekmo z regularnim izrazom in vrne rezultat tekme.
replace(RegExp) Išče niz v nizu s specifično vrednostjo in ga zamenja z novo vrednostjo.
search(RegExp) Išče niz v nizu s specifično vrednostjo in vrne položaj iskanega niza.
slice(začetek, konec) Vrne podniz niza, ki vsebuje znake na mestih z indeksi, ki so večji ali enaki začetek in strogo manjši od konec. Če je kateri od indeksov negativen, izračuna ustrezen pozitiven indeks, pri čemer znake šteje od konca proti začetku (-1 je indeks zadnjega znaka). Če je začetek večji od konca, vrne prazen niz.
split(ločilo, omejitev) Niz razbije na podnize glede na dano ločilo, ki je lahko niz poljubne dolžine ali pa regularen izraz. Dobljene podnize vrne v tabeli (objekt razreda Array). Če je ločilo prazen niz, metoda niz razbije na posamezne znake. Če je niz prazen, je rezultat odvisen od ločila. Če je tudi ločilo prazno vrne tabelo, ki vsebuje prazen niz, sicer pa prazno tabelo. Če podamo omejitev, bo metoda v tabelo zapisala samo prvih toliko podnizov.
substr() Izloči del niza od začtka niza do označenega znaka.
substring() Izloči del niza od začetnega označenega znaka do končnega označenega znaka.
toLocaleLowerCase() Vrne niz , pri čemer vsako veliko črko spremeni v ustrezno malo črko glede na regionalne nastavitve. Metoda deluje enako kot metoda toLowerCase, razlike so le pri redkih jezikih.
toLocaleUpperCase() Vrne niz , pri čemer vsako malo črko spremeni v ustrezno veliko črko glede na regionalne nastavitve. Metoda deluje enako kot metoda toUpperCase, razlike so le pri redkih jezikih.
toLowerCase() Vrne niz, pri čemer vsako veliko črko spremeni v ustrezno malo črko.
toString() Vrne vrednost objekta String.
toUpperCase() Vrne niz, pri čemer vsako malo črko spremeni v ustrezno veliko črko.
trim() Odstrani presledke z obeh koncev niza.
valueOf() Vrne primitivno vrednost objekta String.

Iskanje niza v nizu

Metoda indexOf(index) vrne index prve pojavitve določene vrednosti v nizu od mesta index naprej. Če je indeks nedefiniran, išče od začetka niza. Če iskanega niza ne najde, vrne -1.

JavaScript pozicijo šteje od 0. Tako ima prvi znak v nizu vrednost položaja 0, drugi znak 1, tretji 2, itd.

Poglejmo primer, kjer bomo v nizu "Šolski center Kranj je največji 'center' v Kranju." poiskali prvo pojavitev besede "center":

<p id="stavek">Šolski center Kranj je največji 'center' v Kranju.</p> 
<button onclick="najdiNiz()">Najdi začetek iskanega niza</button> 
<p id="primer"></p> 
<script> 
   function najdiNiz() {
      var niz = document.getElementById("stavek").innerHTML;     
      var polozaj = niz.indexOf("center");     
      document.getElementById("primer").innerHTML = polozaj; 
   } 
</script>

Šolski center Kranj je največji 'center' v Kranju.

Metoda lastIndexOf(index) vrne index zadnje pojavitve določene vrednosti v nizu od mesta index naprej. Če je indeks nedefiniran, išče od začetka niza. Če iskanega niza ne najde, vrne -1.

Poglejmo primer, kjer bomo v nizu "Šolski center Kranj je največji 'center' v Kranju." poiskali zadnjo pojavitev besede "center":

<p id="stavek">Šolski center Kranj je največji 'center' v Kranju.</p> 
<button onclick="najdiNiz()">Najdi začetek iskanega niza</button> 
<p id="primer"></p> 
<script> 
   function najdiNiz() {
      var niz = document.getElementById("stavek").innerHTML;     
      var polozaj = niz.lastIndexOf("center");     
      document.getElementById("primer").innerHTML = polozaj; 
   } 
</script>

Šolski center Kranj je največji 'center' v Kranju.

Metoda search(RegExp)poišče niz v nizu s specifično vrednostjo in vrne položaj iskanega niza. Metodi search() in indexOf() vračata enake rezultate. Razlika med njima je le v tem, da metoda search() omogoča naprednejše iskanje.

Poglejmo primer, kjer bomo v nizu "Šolski center Kranj je največji 'center' v Kranju." poiskali zadnjo pojavitev besede "center":

<p id="stavek">Šolski center Kranj je največji 'center' v Kranju.</p> 
<button onclick="najdiNiz()">Najdi začetek iskanega niza</button> 
<p id="primer"></p> 
<script> 
   function najdiNiz() {
      var niz = document.getElementById("stavek").innerHTML;     
      var polozaj = niz.search("center");     
      document.getElementById("primer").innerHTML = polozaj; 
   } 
</script>

Šolski center Kranj je največji 'center' v Kranju.

Delitev niza

Za delitev niza so na voljo 3 metode:

  • slice(začetek, konec)
  • substring(začetek, konec)
  • substr(začetek, dolžina)

Metoda slice() izreže del niza in ga vrne kot nov niz. Metoda ima dva parametra in sicer začetni in končni index. Oglejmo si primer, kjer bomo izrezali del niza "Šolski center Kranj." od pozicije 7 do 13 (besedo "center"):

      Š o l s k i   c e n  t  e  r     K  r  a  n  j  .
			  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<p id="primer"></p> 
<script> 
   var niz = "Šolski center Kranj."; 
   document.getElementById("primer").innerHTML = niz.slice(7,13); 
</script>

Če navedemo negativne vrednosti parametrov začetek in konec slice(-7, -13), indekse štejemo od desne proti levi. V primeru, da izpustimo parameter za konec slice(7), bomo izrezali niz od začetnega indeksa do konca niza, če pa navedemo negativno začetno vrednost slice(-13), pa bomo izrezali niz od konca niza do indeksa.

Metoda substring(7,13) je podobna metodi slice(7,13), le da ne moremo podati negativnih parametrov.
Tudi metoda substr(7,6) je podobna metodi slice(7,13) , razlika je le v tem, da drugi parameter podajo dolžino izrezanega niza, ki ne sme imeti negativne vrednosti.

Zamenjava vsebine niza

Metoda replace() zamenja specifično vrednost niza z drugo vrednostjo. Poglejmo si primer, kjer bomo v nizu "Šolski center Kranj." zamenjali besedo "Kranj" z "Novo mesto":

<p>V stavku "Šolski center Kranj." zamenjaj besedo "Kranj" z "Novo mesto".</p> 
<button onclick="zamenjaj()">Zamenjaj</button> 
<p id="primer">Šolski center Kranj.</p> 
<script> 
   function zamenjaj() {    
      var niz = document.getElementById("primer").innerHTML;      
      var txt = niz.replace("Kranj","Novo mesto");     
      document.getElementById("primer").innerHTML = txt; 
   } 
</script>

V stavku "Šolski center Kranj." zamenjaj besedo "Kranj" z "Novo mesto".

Šolski center Kranj.

Pretvorba malih in velikih znakov

Z metodo toUpperCase() pretvorimo niz v niz, ki ga sestavljajo samo veliki znaki.

<p>Pretvori niz v niz s samo velikimi znaki:</p> 
<button onclick="pretvoriVeliki()">Pretvori v velike znake</button>
<button onclick="pretvoriMali()">Pretvori v male znake</button> 
<p id="primer">Šolski center Kranj.</p> 
<script> 
   function pretvoriVeliki() {     
      var niz = document.getElementById("primer").innerHTML;     
      document.getElementById("primer").innerHTML = niz.toUpperCase(); 
   } 
   function pretvoriMali() {     
      var niz = document.getElementById("primer").innerHTML;     
      document.getElementById("primer").innerHTML = niz.toLowerCase(); 
   }
</script>

Pretvori niz v niz s samo velikimi znaki:

   

Šolski center Kranj.

Združevanje nizov

Z metodo concat() združimo dva ali več nizov v en niz.

<p>Metoda <code>concat()</code> združi dva ali več nizov:</p> 
<p id="primer"></p> 
<script> 
   var niz1 = "Šolski"; 
   var niz2 = "center";
   var niz3 = "Kranj.";
   document.getElementById("primer").innerHTML = niz1.concat(" ",niz2," ",niz3); 
   document.getElementById("primer").innerHTML = niz1 + " " + niz2 + " " + niz3; 
</script>

Metoda concat() združi dva ali več nizov:

Namesto metode concat() lahko uporabimo tudi operator + s katerim združimo nize. Tako naslednji vrstici kode izpisa vrneta enak rezultat:

document.getElementById("primer1").innerHTML = niz1.concat(" ",niz2," ",niz3); 
document.getElementById("primer2").innerHTML = niz1 + " " + niz2 + " " + niz3; 

Izpis znakov niza

Z metodo charAt() izpišemo znak niza, ki je na določenem indeksu. Če je indeks negativen, večji ali enak dolžini niza, metoda vrne prazen niz.

Z metodo charCodeAt() pa izpišemo unicode kodo znaka na določenem indeksu. Če je indeks negativen, večji ali enak dolžini niza, metoda vrne število NaN.

<p id="primer1"></p>
<p id="primer1"></p> 
<script> 
   var niz = "Šolski center Kranj."; 
   document.getElementById("primer1").innerHTML = niz.charAt(7);
   document.getElementById("primer2").innerHTML = niz.charCodeAt(7);
</script>