vadnica-logo
Editor Moj Blog Moje storitve O projektu Telegram O meni O meni

JavaScrip Nizi

Nizi (Strings) se uporabljajo za predstavitev in obdelavo zaporedja znakov, so uporabni za shranjevanje podatkov, ki jih je mogoče predstaviti v besedilni obliki. Nekatere najpogostejše uporabljene operacije na nizih so preverjanje njihove dolžine, njihova izdelava in povezovanje z nizovnima operaterjema + in +=, preverjanje obstoja ali lokacije podnizov (Substrings) z metodo indexOf() ali abstrahiranjem podnizov (Substrings) z metodo substring().

PRIMER
REZULTAT

Nize je mogoče ustvariti kot primitivne, iz nizovnih literalov ali kot objekte z uporabo konstruktorja String(). Primitivni nizi in objekti imajo veliko skupnega vedenja, vendar imajo druge pomembne razlike in opozorila. Nizovne (ang. String) literale je mogoče določiti z uporabo enojnih ali dvojnih narekovajev, ki se obravnavajo enako, ali z uporabo povratnega znaka.

Do posameznega znaka v nizu (ang. String) lahko dostopamo na dva načina. Prvi način je z metodo charAt() in drugi, da niz (ang. String) obravnavamo kot objekt, podoben tabeli (Array), kjer posamezni znaki ustrezajo številskemu indeksu.

const niz = "Banana"[1]; // vrne vrednost a iz besede Banana

Pri uporabi oglatih oklepajev ([]) za dostop do posameznih znakov poskus brisanja ali dodelitve vrednosti tem lastnostim ne bo uspel. Vključenih lastnosti ni mogoče niti zapisovati, niti konfigurirati. Znotraj niza lahko uporabimo narekovaje, če se ne ujemajo z narekovaji, ki obdajajo niz.

'Uporaba "dvojnega" narekovaja v "nizu", ki je obdan z enojnimi narekovaji.'
"Uporaba 'enojnega' narekovaja v 'nizu', ki je obdan z dvojnimi narekovaji."

Ubežni znaki

V JavaScript nizih (ang. Strings) ne moremo uporabljati enakih narekovajev znotraj niza, kot je niz obdan, obstaja pa rešitev te težave z uporabo ubežnega znaka. Ubežni znak je znak s poševnico nazaj (\) skupaj z narekovajem.

Znak Rezultat Opis
\' ' Enojni narekovaj
\" " Dvojni narekovaj
\\ \ Poševnica nazaj (Backslash)
\b \b Vračalka (Backspace)
\f \f Podatek obrazca
\n \n Nova vrstica
\r \r Vrnitev kazalca (Carriage return)
\t \t Vodoravni tabulator
\v \v Navpični tabulator
\0 \0 Ničelni znak (Null character)
\xXX \x41 Šestnajstiški zapis znaka (XX je šestnajstiška vrednost, primer: \x41 prikaže "A")
\uXXXX \u0041 Unicode zapis znaka (XXXX je šestnajstiška vrednost, primer: \u0041 prikaže "A")

Ustvarjanje in osnovne lastnosti nizov

Nize je mogoče ustvariti kot primitivne vrednosti (literale) ali kot objekte. Primitivni nizi so hitrejši in se uporabljajo v večini primerov. Vsak niz ima lastnost length, ki vrača število znakov, ter številne metode za iskanje, spreminjanje in obdelavo besedila.

Metode za obdelavo nizov

Za delo z nizovi v JavaScriptu so na voljo različne metode, razdeljene v več kategorij:

  1. Iskanje in indeksiranje znakov/podnizov (indexOf, includes, search).
  2. Izrekanje in deljenje nizov (slice, substring, substr, split).
  3. Spreminjanje velikosti pisave in formatiranje (toUpperCase, toLowerCase, trim, padStart).
  4. Zamenjava in ponavljanje (replace, repeat).
  5. Konkatenacija in pretvorbe (concat, toString, charAt, charCodeAt).

Pregled metod za nize (Strings)

Spodnja tabela prikazuje vse glavne metode in lastnosti objektov String v JavaScriptu. Za vsako metodo so navedeni opis delovanja, sintaksa in konkreten primer kode.

Ime Opis Sintaksa Primer
length Vrne število znakov v nizu. niz.length let dolzina = "Banana".length; // 6
indexOf() Vrne indeks prvega pojavljanja podniza (-1, če ne najde). niz.indexOf("podniz", začetniIndeks) "Banana".indexOf("na"); // 2
lastIndexOf() Vrne indeks zadnjega pojavljanja podniza. niz.lastIndexOf("podniz") "Banana".lastIndexOf("na"); // 4
includes() Vrne true, če niz vsebuje podniz, sicer false. niz.includes("podniz") "Banana".includes("na"); // true
startsWith() Vrne true, če niz začne s podnizom. niz.startsWith("podniz") "Banana".startsWith("Ba"); // true
endsWith() Vrne true, če niz konča s podnizom. niz.endsWith("podniz") "Banana".endsWith("na"); // true
search() Vrne indeks prvega pojavljanja (podpira regularne izraze). niz.search(regularniIzraz) "Banana".search(/a/i); // 1
match() Vrne array ujemanj (podpira regularne izraze). niz.match(regularniIzraz) "Banana".match(/a/g); // ["a", "a", "a"]
slice() Izreže del niza (podpira negativne indekse). niz.slice(zacetek, konec) "Banana".slice(1, 4); // "ana"
substring() Izreže del niza (ne podpira negativnih indeksov). niz.substring(zacetek, konec) "Banana".substring(1, 4); // "ana"
substr() Izreže del niza (začetek in dolžina) – opuščeno. niz.substr(zacetek, dolzina) "Banana".substr(1, 3); // "ana"
split() Pretvori niz v array, ločen z določenim ločilom. niz.split("ločilo") "a,b,c".split(","); // ["a", "b", "c"]
toUpperCase() Vrne niz v velikih črkah. niz.toUpperCase() "banana".toUpperCase(); // "BANANA"
toLowerCase() Vrne niz v malih črkah. niz.toLowerCase() "BANANA".toLowerCase(); // "banana"
trim() Odstrani presledke na začetku in koncu niza. niz.trim() " banana ".trim(); // "banana"
trimStart() Odstrani presledke na začetku niza. niz.trimStart() " banana".trimStart(); // "banana"
trimEnd() Odstrani presledke na koncu niza. niz.trimEnd() "banana ".trimEnd(); // "banana"
padStart() Doda znake na začetek niza do določene dolžine. niz.padStart(dolzina, znak) "5".padStart(3, "0"); // "005"
padEnd() Doda znake na konec niza do določene dolžine. niz.padEnd(dolzina, znak) "5".padEnd(3, "0"); // "500"
replace() Zamenja prvi pojavljeni podniz (podpira regex). niz.replace(stari, novi) "Banana".replace("B", "b"); // "banana"
replaceAll() Zamenja vse pojave podniza (podpira regex). niz.replaceAll(stari, novi) "Banana".replaceAll("a", "A"); // "BAnAnA"
repeat() Ponovi niz določen število krat. niz.repeat(število) "Ha".repeat(3); // "HaHaHa"
charAt() Vrne znak na določenem indeksu. niz.charAt(indeks) "Banana".charAt(1); // "a"
charCodeAt() Vrne Unicode vrednost znaka na določenem indeksu. niz.charCodeAt(indeks) "Banana".charCodeAt(1); // 97
[indeks] Dostop do znaka z oglatimi oklepaji (kot pri arrayju). niz[indeks] "Banana"[1]; // "a"
concat() Poveže dva ali več nizov (manj uporabljeno od +). niz.concat(niz2, niz3) "B".concat("anana"); // "Banana"
toString() Vrne vrednost kot niz (privzeto za objekte String). niz.toString() String(123).toString(); // "123"
valueOf() Vrne osnovno vrednost niza. niz.valueOf() "Banana".valueOf(); // "Banana"
Template Literals Omogoča vstavljanje spremenljivk v niz z backticks (`). `Niz ${spremenljivka}` `Pozdrav, ${ime}!`; // "Pozdrav, Ana!"
REZULTAT