JavaScript regularni izrazi
Regularni izraz (engl. skr. regexp ili regex, u množini regexps, regexes ili
regexen) je string koji opisuje, menja, sparuje, ili pretražuje skup stringova,
u skladu sa određenim sintaksnim pravilima.
Regularni izrazi proširuju mogućnosti manipulacijom stringova i to pomoću
javascript funkcijama kao što su:
- match( )
- replace( )
- search( )
U JavaScript -u string regularnog izraza ima dva dela:
regIzraz = /uzorak/modifikatori
Znači, izmedju dve kose crte se piše konkretno uzorak regularnog izraza (koji
se sastavlja iz tabela "Zagrade" "Metakarakteri" "Kvantifikatori") a modifikator
je jedan ili više simbola (mogu i sva tri simbola biti zajedno samo ih pišete
jedan pored drugi) iz tablice "Modifikatori".
Modifikatori:
Modifikator |
Opis |
i |
Ne pravi razliku izmedju mala i velika slova |
g |
Proći kroz ceo string. A kad je bez " g " onda kad se naidje na prvo podudaranje
ili pretragu onda se staje |
m |
Izvodi podudaranje svih redaka |
Zagrade
Izgled |
Opis |
[abc] |
Pronaći bilo koji znak a, b, c |
[^abc] |
Pronaći bilo koji znak a da nije a, b, c |
[0-9] |
Pronaći brojeve od 0 do 9 |
[a-z] |
pronaći sva mala slova |
[A-Z] |
pronaći sva velika slova |
[a-Z] |
pronaći sva slova |
[belo|plavo|crno] |
pronaći ili reč belo ili reč
plavo ili reč crno |
Metakarakteri
Metakarakter |
Opis |
. |
Tačka pronalazi bilo koji znak, ili zamenjuje bilo koji
znak |
\w |
Pronalazi bilo koji word znak. Znači slova, brojevi i
podvučeno. |
\W |
Pronalazi bilo koji znak osim word znakova. |
\d |
Pronalazi brojeve |
\D |
Pronalazi bilo koji znak osim brojeve |
\s |
Pronalazi razmake i tabulatore, ekvivalentno izrazu
[\t\n\r\f\v] |
\S |
Pronalazi znakove a da nisu tabulatori i razmak |
\b |
Pronadji podudaranje na početku ili/i kraju reči |
\B |
Pronadji podudaranje ali da nije na početku i kraju reči |
\0 |
Nadji null znak |
\n |
Pronadji znak novog reda |
\f |
Pronadji novi red |
\r |
pronadji povratak |
\t |
Pronadji tabulator |
\v |
Pronadji vertikalni tabulator |
\xxx |
Pronadji znak mimo oktalnog broja xxx |
\xdd |
Pronadji znak mimo heksadecimalnog broja dd |
\uxxxx |
Pronaći Unicode znak naveden mimo heksadecimalnog broja
xxxx |
Kvantifikatori
Kvatifikator |
Opis |
n+ |
Pronalazi jednom ili više puta prethodni znak. Na primer
bo+ će pronaći bo, i boo, ali neće i b |
n* |
Isto kao gore samo što pronalazi i nula puta, odnosno
pronaći će i b |
n? |
Pronalazi na primer b i bo ali neće boo
|
n{X} |
Pronalazi znak n tačno X puta. Na primer o{2}
pronalazi samo oo |
n{X,Y} |
na primer o{2,4} pronalazi oo, ooo,
i samo još oooo |
n{X,} |
Pronalazi minimum X puta. Na primer o{3} pronalazi
ooo, oooo i tako dalje |
n$ |
Traži znak na kraju reči. Na primer abc$
podudariće se sa reči pegfabc |
^n |
Traži znak na početku reči. Na primer ^abc
podudariće se sa reči abcdefr |
?=n |
Pronalazi bilo koji niz koji sledi specifičan niz n |
?!=n |
Pronalazi bilo koji niz koji ne sledi specifičan niz n |
match( )
match( ) funkcija vraća podudaranja ako ih nadje, na primer izmedju
regularnog izraza i stringa koji se kontroliše. Ako ne nadje vraća nulu. Evo
primera:
<script type="text/javascript">
str="Mali pali za palidrom";
document.write(str.match(/ali/gi));
</script>
Rezultat:
ali,ali,ali
replace( )
replace( ) funkcija traži podudaranje izmedju stringova, ili regularnog
izraza i stringa, i ako nadje vrši zamenu tog nadjenog sa novin stringom. Evo
primera:
<script type="text/javascript">
str="Poseti danas Danicu.";
document.write(str.replace(/dan/gi, "nocas"));
</script>
Rezultat:
Poseti nocasas nocasicu.
search( )
search( ) funkcija traži podudaranje između regularnih izraza i stringa, i
vraća položaj podudaranja: Znakove broji od 0. A ako ne nadje vraća -1.
<script type="text/javascript">
str="Poseti danas Danicu";
document.write(str.search(/Dan/i));
</script>
Rezultat:
7