0% found this document useful (0 votes)
2 views49 pages

JavaScript

The document provides an overview of JavaScript, covering its characteristics, including being an interpreted, object-oriented, and event-driven language. It discusses Node.js, variable declarations, data types, operators, control statements, objects, and functions, emphasizing their roles and functionalities in programming. The document also highlights the evolution of JavaScript and its applications beyond client-side scripting, particularly in server-side programming.

Uploaded by

ilhitaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views49 pages

JavaScript

The document provides an overview of JavaScript, covering its characteristics, including being an interpreted, object-oriented, and event-driven language. It discusses Node.js, variable declarations, data types, operators, control statements, objects, and functions, emphasizing their roles and functionalities in programming. The document also highlights the evolution of JavaScript and its applications beyond client-side scripting, particularly in server-side programming.

Uploaded by

ilhitaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 49

1

JS

Pregled
1 Uvod
2 Node.js
3 Deklaracija varijabli
4 Tipovi podataka
5 Operatori
7 Objekti
8 Funkcije
9 Nizovi
10 Klase
11 Izuzeci
12 Asihrono programiranje
2

1. Uvod

• Programski jezik
– Nije strogo tipiziran
– Interpretiran
• Podržan je od strane svih browser-a
– Funkcionalan i imperativan
• Even-driven
– Objektno-orijentisan
• Klase su dodati u kasnijim verzijama
– Sa HTML-om i CSS-om čini osnovu www tehnologije
• Omogućava da web stranice budu zapravo interaktivne
– Inicijalno nastao radi dinamičnosti stranica na klijentskoj
strani
3

1. Uvod

• U posljednoj deceniji doživaljava veliku


popularnost
– Trenutno je na 7. mjestu po TIOBE indeksu
• Odmah iza jezika kao što su Java, C, C++ itd
– Pojavilo se mnoštvo frejmvorka i biblioteka za izradu
klijentskih aplikacija
– Nalazi daleko širu primjenu od one za koju je inicijalno
kreiran
• Može se upotrebljavati za server-side programiranje, razvoj
mobilnih aplikacija
– Putem okruženja kao što su NodeJS, ReactNative itd
– Sintaksa se stalno unapređuje
• Standardi ES5, ES6
4

1. Uvod

• Omogućava manipulaciju sadržajem HTML


stranica

<!DOCTYPE html>
<html>
<body>

<h2>What Can JavaScript Do?</h2>

<p id="demo">JavaScript can change HTML content.</p>

<button type="button" onclick='document.getElementById("demo").innerHTML =


"Hello JavaScript!"'>Click Me!</button>

</body>
</html>
5

2. Node.js

• Node.js
– Do pojave ovog alata JS je korišćen isključivo na strani
klijenta
• 2009. godine se pojavila prva verzija
– Omogućava da se JS koristi i za programiranje izvan
browser-a
• programski jezik opšte namjene
• Najveću primjenu je našao u server-side programiranju
– Zasniva se na V8 JS engine
• Chrome
– Glavni principi
• Asinhronost
• Single-thread
• Brzina
6

2. Node.js

• Instalacija
– Preuzeti odgovarajuću verziju programa sa sajta
https://nodejs.org/en/
– CLI okruženje
– U komandnom prozoru kucati
• node –v
– Provjera koja je verzija instalirana
• pokrenuti prvi program
– node hello.js

hello.js:
console.log('Hello world');
7

3. Deklaracija varijabli

• Ključne riječi var, let i const


– const znači da varijabla neće mijenjati vrijednost
– var x, y, z; ili let x, y, z;
– Nema tipova
• Nije strogo tipiziran jezik
– Dodjelom se često odredi koji tip je u pitanju
• a = 5; b = 6; c = a + b;
– Dominiraju numerički i tip teksta (string)
8

3. Deklaracija varijabli

• Prilikom deklaracije može se izostaviti vrijednost


– U tom slučaju vrijednost varijable je undefined

var a;
var b = 0;
var c = a + b;
console.log(a);
console.log(b);
console.log(c);
9

3. Deklaracija varijabli

• Razlike u pogledu opsega važenja


– var i let
• Kada deklarišete varijablu sa var ona postoji i van bloka u
kojem je deklarisana, dok to nije slučaj sa let

if (true){
var x = 10;
}
console.log(x);

if (true){
let x = 10;
}
console.log(x);
10

4. Tipovi podataka

• Primitivni tipovi
– Number
– Boolean
– String
• Tekst se može zadati i sa jednostrukim i dvostrukim znacima navoda
• Specijalni simboli i Unicode
– \r, \n, \t, '\u00A9' itd

• Objekti
– Funkcije
– Nizovi
– Regularni izrazi
– Date
• Specijalni literali
– null i undefined
11

4. Tipovi podataka

• Numerički literali
– Uvijek se svode na 64-bitne realne brojeve
• ekvilentno sa double u Javi

let count = 10; // integer literal; count is still a double


const blue = 0x0000ff; // hexadecimal (hex ff = decimal 255)
const umask = 0o0022; // octal (octal 22 = decimal 18)
const roomTemp = 21.5; // decimal
const c = 3.0e6; // exponential (3.0 × 10^6 = 3,000,000)
const e = -1.6e-19; // exponential (-1.6 × 10^-19 = 0.00000000000000000016)
const inf = Infinity;
const ninf = -Infinity;
const nan = NaN; // "not a number
12

4. Tipovi podataka
• Stringovi
– Tekst se može zadati i sa jednostrukim i dvostrukim znacima navoda
• const dialog = 'Sam looked up, and said "hello, old friend!", as Max walked in.’;
• const imperative = "Don't do that!";
– Specijalni simboli i Unicode
• \r, \n, \t, '\u00A9' itd
– Šabloni
• let currentTemp = 19.5;
const message = `The current temperature is ${currentTemp}\u00b0C`;
• Backtick
– Moguće je zadati string u više redova
• multiline
• Na kraju reda treba dodati simbol /
– const multiline = "line1\
line2";
13

4. Tipovi podataka

• Literali
– Specijalni literali
• null
– Koristi se od strane programera da se označi da je
neka niz nedefisana
• Npr. prazan niz
• undefined
– Vrijednost je još uvijek nepoznata
• Varijabla je deklarisana ali joj nije dodijeljena
vrijednost
• Argument prilikom poziva nije definisan
– Preporučuje se da se ne koristi eksplicitno od strane
programera
• Bolje koristiti null
14

5. Operatori

• Operatori
– Aritmetički
• +, -, *, /, %, ++, --
– Dodjele
• =, +=, *= itd
– Poređenje
• ==, !=, >=, <=, ===
– Obratiti pažnju na razliku izmedju == i ===
• Konverzija tipova
– Logički
• &&, ||, !
15

6. Kontrolne naredbe

• Kontrolne naredbe
– Slično kao u programkom jeziku Java
• if, while, for, case

if (hour < 18) {


greeting = "Good day";
} else {
greeting = "Good evening";
}

while (i < 10) {


text += "The number is " + i;
i++;
}

for (i = 0; i < 5; i++) {


text += "The number is " + i + "<br>";
}
16

7. Objekti

• Objekti
– Skup parova ključ:vrijednost
• var car = {type:"Fiat", model:"500",
color:"white"};
– Svojstvima se pristupa koristeći OO notaciju
• objectName.propertyName
• car.model
– Mogu sadržati i funkcije
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
17

7. Objekti

• Objekti
– Članovim objekta može se pristupati i putem operatora []
• computed member access
• Npr. person[“firstName”]
– Dozovljeno je i ugnježdavanje
const sam3 = {
name: 'Sam',
classification: {
kingdom: 'Anamalia’,
phylum: 'Chordata’,
class: 'Mamalia’,
order: 'Carnivoria’,
family: 'Felidae’,
subfaimily: 'Felinae’,
genus: 'Felis’,
species: 'catus’,
},
};
18

8. Funkcije

• Funkcije
– Glavna organizaciona jedinica programskog koda

function name(parameter1, parameter2, parameter3)


{
code to be executed
}

function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
19

8. Funkcije

• Funkcije
– U JS funkcije su zapravo objekti
• Drugim riječima, može se deklarisati varijabla tipa funkcije
• Mogu se predavati kao argmenti drugim funkcijama
• Razlika između poziva i referenciranja
– getGreeting();
• Poziv funkcije
– getGreeting;
• referenca

function getGreeting() { const f = getGreeting;


return "Hello world!"; f(); // "Hello, World!"
}
20

8. Funkcije

• Funkcije
– Nema preklapanja funkcija kao u drugim programskim
jezicima
• Preklapanje je koncept u programskom gdje mogu da se
definišu dvije funkcije istog imena
– Razlikuju se na osnovu broja i tipa argumenata
– U JS kada jednom definišete funkciju, npr.
getGreetings, svaki poziv funkcije pod tim imenom se
odnosi na tu jednu funkciju
• Možete pozvati funkciju sa bilo kojim brojem argumenata
– Npr. Ako funkcija ima dva argumenta, a prilikom poziva
je predat samo jedan, onda će drugi imati vrijednost
undefined
21

8. Funkcije

• Funkcije
– Dozvoljeno je ugnježdavanje
• Tijelo jedne funkcije definiše su unutar druge funkcije

function max3(a, b, c){

function max2(x, y){


if (x > y)
return x;
else
return y;
}

return max2(a, max2(b, c));


}

console.log(max3(4, 5, 1));
22

8. Funkcije

• Funkcije
– Argumenti mogu da imaju i svoje podrazumijevane
vrijednosti
• U slučaju da argument nije definisan, onda on uzima svoju
podruzumijevani vrijednost navedenu prilikom deklaracije

function f(a, b = "default", c = 3) {


return a + '-' + b + '-' + c;
}
console.log(f(5, 6, 7));
console.log(f(5, 6));
console.log(f(5));
console.log(f());
23

8. Funkcije

• Funkcije
– Mogu da budu i članovi (property) objekata
• U tom slučaju se nazivaju metode

const o = {
name: 'Wallace’,
bark: function() { return 'Woof!'; },
}
24

8. Funkcije

• this pokazivač
– Sličan pojmu this pokazivača iz drugih jezika kao što je Java
• Pokazivač na objekat koji je pozvao funkciju

const o = {name: 'Wallace',


speak() { return 'My name is ' + this.name; }
}
console.log(o.speak());
25

8. Funkcije

• this pokazivač
– U nekim slučajevima moguće je da se izgubi informacija o
tome gdje this pokazuje
• Npr. Sačuva se pokazivač na funkciju u neku varijablu

const o = {name: 'Wallace',


speak() { return 'My name is ' + this.name; }
}
const speak = o.speak;
speak === o.speak;
console.log(speak());
26

8. Funkcije

• this pokazivač
– U nekim sutiuacijam zna da se izgubi informacija o tome
gdje this pokazuje
• Problem je naročito izražen kod ugnježednih funkcija

const o = {
name: 'Julie',
greetBackwards: function() {
function getReverseName() {
let nameBackwards = '';
for(let i=this.name.length-1; i>=0; i--) {
nameBackwards += this.name[i];
}
return nameBackwards;
}
return getReverseName() + " si eman ym ,olleH";
},
};
console.log(o.greetBackwards());
27

8. Funkcije

• Neimenovane funkcije

– Dosta se koriste kao argumenti drugih funkcija


• Moguće je zadati kompletnu definiciju funkcije kao argument
– Članice objekata
– Callback kod asihronog programiranja
– Funkcija može da bude i rezultat druge funkcije

const f = function() {
return "message in a bottle";
}

console(f());
function max(a, b){ 28
if (a >= b) return true; Outline
else return false;
}
8.
function min(a, b){
if (a >= b) return false;
Funkcije
else return true;
}

lefunction sort(arr, comparator){


for(let i = 0; i < arr.length; i++){
for(let j = 0; j < arr.length - i - 1; j++){
if (comparator(arr[j], arr[j+1])){
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
t arr = [3, 2, 1, 5, 4];
sort(arr, max)
console.log(arr);
sort(arr, min)
console.log(arr);
function sort(arr, comparator){ 29
for(let i = 0; i < arr.length; i++){ Outline
for(let j = 0; j < arr.length - i - 1; j++){
if (comparator(arr[j], arr[j+1])){
let temp = arr[j]; 8.
arr[j] = arr[j + 1];
arr[j + 1] = temp;
Funkcije
}
}
}
}
let arr = [3, 2, 1, 5, 4];
sort(arr, function(a, b){
if (a >= b) return true;
else return false;
});

console.log(arr);
30

8. Funkcije

• Arrow notation
– Definisane u standardu ES6
• Uvijek su anonimne
• Suštinski je samo sintaksna olakšica
– Uz jedan bitan izuzetak
• this pokazivač kod ugnježdenih funkcija
• Pojednostavljuje sintaksu na tri načina
– Može se izostaviti function
– Ako funkcija ima jedan argument mogu se izostaviti
zagrade
– Ako tijelo funkcije ima samo jednu naredbu mogu se
izostaviti vitičaste zagrade
31

8. Funkcije

• Arrow notation

const f1 = function() { return "hello!"; }


// OR
const f1 = () => "hello!";

const f2 = function(name) { return 'Hello, ' + name + '!'; }


// OR
const f2 = name => 'Hello, ' + name + '!';

const f3 = function(a, b) { return a + b; }


// OR
const f3 = (a,b) => a + b;
function sort(arr, comparator){ 32
for(let i = 0; i < arr.length; i++){ Outline
for(let j = 0; j < arr.length - i - 1; j++){
if (comparator(arr[j], arr[j+1])){
let temp = arr[j]; 8.
arr[j] = arr[j + 1];
arr[j + 1] = temp;
Funkcije
}
}
}
}
let arr = [3, 2, 1, 5, 4];
sort(arr, (a, b) => a >= b);
console.log(arr);
33

8. Funkcije

• Arrow notation
– Bitna razlika je this pokazivač
• Automatski povezan

const o = {
name: 'Julie',
greetBackwards: function() {
const getReverseName = () => {
let nameBackwards = '';
for(let i=this.name.length-1; i>=0; i--) {
nameBackwards += this.name[i];
}
return nameBackwards;
}
return getReverseName() + " si eman ym ,olleH";
},
};
console.log(o.greetBackwards());
34

9. Nizovi
• Nizovi
– var array_name = [item1, item2, ...];
– Elementima se slično pristupa kao i u drugim jezicima
• Preko indeksa koji počinje od 0
– Heterogeni
• Mogu sadržati više elemenata različitog tipa
– Slično kao u Javi imaju properti length
– Ako se postavi element koji je izvan granica ne dolazi do greške
• Niz se proširuje
– Elementi između dobijaju vrijednost undefined
// array literals 35
const arr1 = [1, 2, 3]; // array of numbers Outline
const arr2 = ["one", 2, "three"]; // nonhomogeneous array
const arr3 = [[1, 2, 3], ["one", 2, "three"]];
const arr4 = [ { name: "Fred", type: "object", luckyNumbers = [5, 7,
13] },
9. Nizovi
[
{ name: "Susan", type: "object" },
{ name: "Anthony", type: "object" },
],
1,
function() { return "arrays can contain functions too"; },
"three",
];
// accessing elements
arr1[0]; // 1
arr1[2]; // 3
arr3[1]; // ["one", 2, "three"]
arr4[1][0]; // { name: "Susan", type: "object" }
// array length
arr1.length; // 3
arr4.length; // 5
arr4[1].length; // 2
// increasing array size
arr1[4] = 5;
arr1; // [1, 2, 3, undefined, 5]
arr1.length; // 5
36

7. Nizovi

• Brojne ugrađenje funkcije za manipulaciju


– Dodavanje i Brisanje
• pop
– Uklanja element sa kraja
• push
– Dodaje element na kraj
• shift
– Briše element sa početka
• unshift
– Dodaje element na početak
• splice
– Promjenjiv broj argumenata
• Prvi označava početak izmjene
• Drugi broj elemat koje treba brisati
• Ostali su elementi koji se umeću
37

7. Nizovi

• Brojne ugrađenje funkcije za manipulaciju


– Spajanje nizova
• concat
– Dodaje više elemenata na kraj niza i vraća kopiju
• Niz se ne mijenja
– Podniz
• slice
– Vraća sračunati niz i ne mijenja niz nad kojim se
primjenjuje ova funkcija
– Ima dva argumenta
• Prvi je indeks početka podniza, a drugi indeks kraja
podniza (isključno)
• Moguće je zadavati i negativne brojeve i tu slučaju
računanje ide od kraja
38

7. Nizovi

• Brojne ugrađenje funkcije za manipulaciju


– Sortiranje i okretanje
• sort i reverse
– Za nizove obojekata moguće je definisati uslov poređenja
– Traženje
• indexOf i lastIndexOf
– Locira prvo i posljednje pojavljivanje elementa
• find i findIndex
– Vraća element ili indeks elementa
• some
– Da li postoji element koji zadovoljava uslov
– Filteriranje i mapiranje
• map i filter
const arr = ["b", "c", "d"]; 39
arr.push("e"); // returns 4; arr is now ["b", "c", "d", "e"] Outline
arr.pop(); // returns "e"; arr is now ["b", "c", "d"]
arr.unshift("a"); // returns 4; arr is now ["a", "b", "c", "d"]
arr.shift(); // returns "a"; arr is now ["b", "c", "d"] 9. Nizovi
const arr = [1, 5, 7];
arr.splice(1, 0, 2, 3, 4); // returns []; arr is now [1, 2, 3, 4, 5,
7]
arr.splice(5, 0, 6); // returns []; arr is now [1, 2, 3, 4, 5, 6, 7]
arr.splice(1, 2); // returns [2, 3]; arr is now [1, 4, 5, 6, 7]
arr.splice(2, 1, 'a', 'b'); // returns [5]; arr is now [1, 4, 'a',
'b', 6, 7]

const arr = [1, 2, 3];


arr.concat(4, 5, 6); // returns [1, 2, 3, 4, 5, 6]; arr unmodified
arr.concat([4, 5, 6]); // returns [1, 2, 3, 4, 5, 6]; arr unmodified

const arr = [1, 2, 3, 4, 5];


arr.slice(3); // returns [4, 5]; arr unmodified
arr.slice(2, 4); // returns [3, 4]; arr unmodified
arr.slice(-2); // returns [4, 5]; arr unmodified
arr.slice(1, -2); // returns [2, 3]; arr unmodified
arr.slice(-2, -1); // returns [4]; arr unmodified

const arr = [1, 2, 3, 4, 5];


arr.reverse(); // arr is now [5, 4, 3, 2, 1]
const arr = [5, 3, 2, 4, 1];
arr.sort(); // arr is now [1, 2, 3, 4, 5]
const arr = [{ name: "Suzanne" }, { name: "Jim" }, 40
{ name: "Trevor" }, { name: "Amanda" }]; Outline
arr.sort(); // arr unchanged
arr.sort((a, b) => a.name > b.name); // arr sorted alphabetically
// by name property
9. Nizovi
const o = { name: "Jerry" };
const arr = [1, 5, "a", o, true, 5, [1, 2], "9"];

arr.indexOf("a", 5); // returns -1


arr.indexOf(5); // returns 1
arr.lastIndexOf(5); // returns 5
arr.indexOf(5, 5); // returns 5
arr.lastIndexOf(5, 4); // returns 1

const arr = [{ id: 5, name: "Judith" }, { id: 7, name: "Francis" }];


arr.findIndex(o => o.id === 5); // returns 0
arr.findIndex(o => o.name === "Francis"); // returns 1
arr.findIndex(o => o === 3); // returns -1

const arr = [{ id: 5, name: "Judith" }, { id: 7, name: "Francis" }];


arr.find(o => o.id === 5); // returns object { id: 5, name:
"Judith" }
arr.find(o => o.id === 2); // returns null

const arr = [5, 7, 12, 15, 17];


arr.some(x => x%2===0); // true; 12 is even
const cart = [ { name: "Widget", price: 9.95 }, { name: "Gadget", 41
price: 22.95 }]; Outline
const names = cart.map(x => x.name); // ["Widget", "Gadget"]
const prices = cart.map(x => x.price); // [9.95, 22.95]
const discountPrices = prices.map(x => x*0.8); // [7.96, 18.36]
const lcNames = names.map(String.toLowerCase); // ["widget",
9. Nizovi
"gadget"]

// create a deck of playing cards


const cards = [];
for(let suit of ['H', 'C', 'D', 'S']) // hearts, clubs, diamonds,
spades
for(let value=1; value<=13; value++)
cards.push({ suit, value });
// get all cards with value 2:
cards.filter(c => c.value === 2); // [
// { suit: 'H', value: 2 },
// { suit: 'C', value: 2 },
// { suit: 'D', value: 2 },
// { suit: 'S', value: 2 }
// ]
// (for the following, we will just list length, for compactness)
// get all diamonds:
cards.filter(c => c.suit === 'D'); // length: 13
// get all face cards
cards.filter(c => c.value > 10); // length: 12
// get all face cards that are hearts
cards.filter(c => c.value > 10 && c.suit === 'H'); // length: 3
42

10. Klase

• Klase
– Noviji standard (ECMAScript2015)
– Uvodi se principi OO
• Više paradigmi programiranja
– Funkcionalno, OO proramiranje itd

class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return "I have a " + this.carname;
}
}

mycar = new Car("Ford");


console.log(mycar.present());
43

10. Klase
• Klase
– Propertiji putem get i set metoda

class Car {
constructor(make, model) {
this.make = make;
this.model = model;
this._userGears = ['P', 'N', 'R', 'D’];
this._userGear = this._userGears[0];
}
get userGear() { return this._userGear; }
set userGear(value) {
if(this._userGears.indexOf(value) < 0)
return;
this._userGear = vaule;
}
shift(gear) { this.userGear = gear; }
}
44

13. Regularni izrazi

• Obrasci
– Vrše provjeru da li se zadati string uklapa po obrascu
– Moguće je i vršiti zamjenu podstringa
• Tranformacije
– Predstavljaju se klasom RegExp
• Često su u upotrebi da je i sintaksa jezika prilagođena da je
moguće regularni izraz zadati kao literal
– Koristi se forward slash
• Deklaracije const re2 = new RegExp("going"); i
const re1 = /going/; su ekvivalentne
– Provjerava da li strng sadrži podstring going
45

13. Regularni izrazi

• Metode
– match
• Vraća sve podstringove koji zadovoljavaju reg. izraz
– search
• Vraća prvi podniz koji zadovoljava uslov
– test
• provjerava da li postoji poklapanje i vraća boolean vrijednost
– Koristi se forward slash
– exec
• Nalazi tekuće pojavljivanje
– Kada se pozove prvi put vraća prvo pojavljivanje
– replace
• Vrši zamjenu
const input = "As I was going to Saint Ives"; 46
const re = /\w{3,}/ig; Outline
// starting with the string (input)
input.match(re); // ["was", "going", "Saint", "Ives"]
input.search(re); // 5 (the first three-letter word starts at 13.
index 5)
Datumi
// starting with the regex (re)
re.test(input); // true (input contains at least one three-
letter word)
re.exec(input); // ["was"] (first match)
re.exec(input); // ["going"] (exec "remembers" where it is)
re.exec(input); // ["Saint"]
re.exec(input); // ["Ives"]
re.exec(input); // null -- no more matches

// note that any of these methods can be used directly with a


regex literal
input.match(/\w{3,}/ig);
/\w{3,}/ig.test(input);

const input = "As I was going to Saint Ives";


const output = input.replace(/\w{4,}/ig, '****'); // "As I was
****
// to **** ****"
47

13. Regularni izrazi

• Formiranje izraza
– Alternative (ili) |
• /ab|cd/ig
– ^
• Negacija, tj. sve osim
– Cifre se predstavljaju sa[0-9]
• Može i \d
– Bjeline (\n \t itd) se predstavljaju sa \s
– Slova se predstavaljaju sa [a-zA-Z_]
• Može i \w
48

13. Regularni izrazi

• Kardinalitet
– Moguće ga je zadati u {} zagradama
• {n} – tačno n pojavljivanja
– Npr. /d{5}/ match-uje brojeve od tačno 5 cifara
• {n,} – n ili više pojavljivanja
• {n,m} – između n i m pojavljivanja
– ?
• Opciono, tj. 0 ili 1 pojavljivanje
– *
• Nula ili više pojavljivanja
– +
• Barem jedno pojavljivanje
const stuff = 49
'hight: 9\n' + Outline
'medium: 5\n' +
'low: 2\n';
const levels = stuff.match(/:\s*[0-9]/g); 13.
const input = "Address: 333 Main St., Anywhere, NY, 55532.
Datumi
Phone: 555-555-2525.";
const match = input.match(/\d{5}.*/);

const beer99 = "99 bottles of beer on the wall " +


"take 1 down and pass it around -- " +
"98 bottles of beer on the wall.";

const match = beer99.match(/[0-9]+/);

const input = "Address: 333 Main St., Anywhere, NY, 55532.


Phone: 555-555-2525.";
Const match = input.match(/\d{5}.*/);

const equation = "(2 + 3.5) * 7";


const match = equation.match(/\(\d \+ \d\.\d\) \* \d/);

You might also like