Uvod u regularne izraze u JavaScript-u
Regularni izrazi su takve komande za složenu pretragu i zamenu (ili jednostavno pretragu). Oni omogućavaju da se urade vrlo zanimljive stvari, ali su, nažalost, prilično teški za savladavanje.
Postoji nekoliko JavaScript metoda za
rad sa regularnim izrazima. Počećemo
da ih upoznajemo na primeru replace
- već ste upoznati sa ovom metodom: ona prvim
parametrom prima šta zameniti, a drugim
- čime zameniti. A sama metoda se primenjuje
na string u kome se vrši zamena:
'bab'.replace('a', '!'); // vraća 'b!b'
Prvim parametrom ove metode može se proslediti
ne samo string, već regularni izraz.
Regularni izraz predstavlja skup
komandi, smeštenih unutar kose crte /. Ove
kose crte se zovu graničnici regularnih
izraza.
Sami regularni izrazi se sastoje od dva tipa simbola: od onih koji označavaju sami sebe i od simbola-komandi, koji se nazivaju specijalni simboli.
Slova i cifre označavaju same sebe. U sledećem
primeru ćemo uz pomoć regularnog izraza
zameniti slovo 'a' sa !:
'bab'.replace(/a/, '!'); // vraća 'b!b'
A tačka je specijalni simbol
i označava bilo koji simbol. U sledećem
primeru ćemo naći string po takvom šablonu:
slovo 'x', zatim bilo koji simbol, zatim
ponovo slovo 'x':
'xax eee'.replace(/x.x/, '!'); // vraća '! eee'
Iza graničnika može se pisati modifikatori
- komande koje menjaju opšta svojstva
regularnog izraza. Na primer, modifikator
g uključuje režim globalne pretrage
i zamene - bez njega regularni izraz traži samo
prvo poklapanje, a sa njim - sva poklapanja.
U sledećem primeru nije naveden modifikator
g i regularni izraz će naći samo prvo
poklapanje:
'aab'.replace(/a/, '!'); // vraća '!ab'
A sada će regularni izraz naći sva poklapanja:
'aab'.replace(/a/g, '!'); // vraća '!!b'
Dat je string:
let str = 'ahb acb aeb aeeb adcb axeb';
Napišite regularni izraz koji će naći stringove
'ahb', 'acb', 'aeb'
po šablonu: slovo 'a', bilo koji simbol,
slovo 'b'.
Dat je string:
let str = 'aba aca aea abba adca abea';
Napišite regularni izraz koji će naći stringove
'abba', 'adca', 'abea'
po šablonu: slovo 'a', 2
bilo koja simbola, slovo 'a'.
Dat je string:
let str = 'aba aca aea abba adca abea';
Napišite regularni izraz koji će naći stringove
'abba' i 'abea', ne zahvatajući
'adca'.