JavaScript - String


Šta je String u JavaScript?

String je niz slova, brojeva, posebnih znakova i aritmetičkih vrijednosti ili kombinacija svih. Stringovi se mogu stvoriti dodavanjem literalnog stringa (tj. znakova stringa) bilo unutar pojedinačnih (') ili dvostrukih navodnika ("), kao što je prikazano u sljedećem primjeru:

var myString = 'Hello World!'; // String sa jednostrukim navodnim znakovima
var myString = "Hello World!"; // String sa dvostrukim navodnim znakovima
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Kreiranje stringa u JavaScript</title>
</head>
<body>
    <script>
    // Kreiranje varijabli
    var myString = 'Hello World!'; // String sa jednostrukim navodnim znakovima
    var myString = "Hello World!"; // String sa dvostrukim navodnim znakovima
    
    // Ispisivanje vrijednosti varijabli
    document.write(myString + "<br>");
    document.write(myString);
    </script>
</body>
</html>

Možete koristiti navodnike unutar stringa, sve dok se ne podudaraju sa navodima koji okružuju stringa:

var str1 = "it's okay";
var str2 = 'He said "Goodbye"';
var str3 = "She replied 'Calm down, please'";
var str4 = 'Hi, there!"; // Syntax error - navodni znaci nisu identični
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Korištenje navodnika unutar JavaScript Stringa</title>
</head>
<body>
    <script>
    // Kreiranje varijabli
    var str1 = "it's okay";
    var str2 = 'He said "Goodbye"';
    var str3 = "She replied 'Calm down, please'";
    
    // Ispisivanje vrijednosti varijabli
    document.write(str1 + "<br>");
    document.write(str2 + "<br>");
    document.write(str3);
    </script>
</body>
</html>

Međutim i dalje možete koristiti pojedinačne citate unutar jednostrukih navodnih znakova ili dvostruke citate unutar dvostrukih navodnih znakova, izbjegavajući backslash (\), poput sljedećeg primjera:

var str1 = 'it\'s okay';
var str2 = "He said \"Goodbye\"";
var str3 = 'She replied \'Calm down, please\'';

Kosa crta unazad - backslash (\) naziva se znak za bijeg, dok se sekvence \' i \" koje smo upotrijebili u gornjem primjeru nazivaju escape sekvence.



JavaScript sekvence bijega (escape)

Izlazni stringovi su takođe korisni u situacijama kada želite koristiti znakove koji se ne mogu upisati pomoću tastature. Evo nekih od najčešće korištenih sekvenci bijega.

  • \n - zamjenjuje se znakom nove linije
  • \t - zamjenjuje se znakom kartice
  • \r - zamjenjuje znak povratka nosača
  • \b - zamjenjuje znak povratnog prostora
  • \\ - zamjenjuje se jednom kosom crtom (\)

Evo primjera za pojašnjenje kako zapravo rade sekvence bijega:

var str1 = "Ja sam skočio \n u bazen.";
document.write("<pre>" + str1 + "</pre>"); // Kreiraj prekid linije
 
var str2 = "C:\Users\Downloads";
document.write(str2); // Ispisuje: C:UsersDownloads
 
var str3 = "C:\\Users\\Downloads";
document.write(str3); // Ispisuje: C:\Users\Downloads
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Sekvence bijega</title>
</head>
<body>
    <script>
    // Kreiranje varijabli
    var str1 = "Ja sam skočio \n u bazen.";
   document.write("<pre>" + str1 + "</pre>"); // Kreiraj prekid linije
 
    var str2 = "C:\Users\Downloads";
    document.write(str2); // Ispisuje: C:UsersDownloads
 
    var str3 = "C:\\Users\\Downloads";
    document.write(str3); // Ispisuje: C:\Users\Downloads
    </script>
</body>
</html>


Izvođenje operacija na string-ovima

JavaScript pruža nekoliko svojstava i metoda za izvođenje operacija na vrijednostima stringa. Tehnički, samo objekti mogu imati svojstva i metode, ali u JavaScript primitivni tipovi podataka mogu djelovati poput objekata kada im se obratite s notacijom pristupa svojstvu (tj. notacija točake). JavaScript omogućava stvaranje privremenog objekta za omotanje primitivnih tipove podataka. Ovaj postupak automatski provodi JavaScript tumač u pozadini.



Dužina stringa (length)

Svojstvo length vraća dužinu stringa, što je broj znakova sadržanih u stringu. To uključuje i broj posebnih znakova, poput \t ili \n.

var str1 = "Ovo je paragraf nekog teksta.";
document.write(str1.length); // Ispisuje: 28
 
var str2 = "Ovo je \n paragraf nekog teksta.";
document.write(str2.length); // Ispisuje: 30, zato što je \n samo jedan karakter
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Dobijanje dužine stringa u JavaScript</title>
</head>
<body>
    <script>
    var str1 = "Ovo je paragraf nekog teksta.";
    document.write(str1.length); // Ispisuje: 28
 
    var str2 = "Ovo je \n paragraf nekog teksta.";
    document.write(str2.length); // Ispisuje: 30, zato što je \n samo jedan karakter
    </script>
</body>
</html>


Pronalaženje stringa unutar drugog stringa

Možete koristiti metodu indexOf() da pronađete string u drugome stringu. Ova metoda vraća indeks ili poziciju prve pojave određenog stringa unutar stringa.

var str = "Ja volim da učim JavaScript uz IT TUTORIJALE.";
var pos = str.indexOf("IT TUTORIJALE");
alert(pos); // Ispisuje: 32
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Pronalaženje stringa unutar drugog stringa</title>
</head>
<body>
    <script>
    var str = "Ja volim da učim JavaScript uz IT TUTORIJALE.";
    var pos = str.indexOf("IT TUTORIJALE");
    alert(pos); // Ispisuje: 32
    </script>
</body>
</html>

Slično tome, možete koristiti metodu lastIndexOf() da biste dobili indeks ili poziciju posljednje pojave određenog stringa unutar stringa, poput sljedećeg primjera:

var str = "Ja volim da učim JavaScript uz IT TUTORIJALE.";
var pos = str.lastIndexOf("IT TUTORIJALE");
alert(pos); // Ispisuje: 32

Metode indexOf() i lastIndexOf() vraćaju -1 ako podstring nije pronađen. Obe metode prihvataju i neobavezni integralni parametar koji određuje poziciju unutar stringa na kojem započinje pretraživanje. Pogledajmo primjer:

var str = "Ja volim da učim JavaScript uz IT TUTORIJALE.";
 
// Traži naprjed
var pos1 = str.indexOf("IT TUTORIJALE", 20);
alert(pos1); // Ispisuje: 32
 
// Traži nazad
var pos2 = str.lastIndexOf("IT TUTORIJALE", 20);
alert(pos2); // Ispisuje: 1


Traženje uzorka unutar stringa

Možete koristiti metodu search() za pretraživanje određenog dijela teksta ili uzorka unutar stringa. Poput metode indexOf(), metoda search() takođe vraća indeks prvog podudaranja i vraća -1 ako nisu pronađena podudaranja, ali za razliku od indexOf() metode, ova metoda takođe može uzimati redovan izraz kao svoj argument za pružanje napredne mogućnosti pretrage.

var str = "Crvena boja izgleda bolje od plave.";
 
// Pretraga osetljiva na velika i mala slova
var pos1 = str.search("boja");
alert(pos1); // Ispisuje: 8
 
// Pretraga pomoću regexp
var pos2 = str.search(/boja/i);
alert(pos2); // Ispisuje: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Pretražite tekst ili obrazac unutar niza</title>
</head>
<body>
    <script>
    var str = "Crvena boja izgleda bolje od plave.";
 
    // Pretraga osetljiva na velika i mala slova
    var pos1 = str.search("boja");
    alert(pos1); // Ispisuje: 8
 
    // Pretraga pomoću regexp
    var pos2 = str.search(/boja/i);
    alert(pos2); // Ispisuje: 0
    </script>
</body>
</html>