Modifikatori u regularnim izrazima

Modifikatori su posebni znakovi koji definišu ponašanje regularnog izraza.

iprilikom uparivanja poistovećuje velika i mala slova
gpronalazi sva poklapanja zadatog šablona
muparivanje se vrši u tekstu sa više linija

Kada u JavaScriptu navodimo regularni izraz kao literal, modifikatori se navode odmah posle zatvarajuće kose crte. Navode se samo oni koje želimo da primenimo, jedan za drugim, bez razmaka i bez određenog redosleda.

/šablon/modifikatori

Ako kreiramo regularni izraz ppreko konstruktora, modifikatore zadajemo kao drugi parametar, u obliku stringa

new RagExp(šablon, modifikatori)

Regularni izrazi kreiraju veoma precizne šablone, kod kojih se velika i mala slova razlikuju. To znači da su stringovi "Pera", "pera" i "PERA" svi različiti. Modifikator i u stvari kaže da se velika i mala slova poistovete, tako da bi po tome ova tri natpisa bili jednaki.

U stringu je moguće da se pojavi više poklapanja sa šablonom. U normalnim situacijama pronalazi se samo prvo poklapanje. Međutim, ako se zada modifikator g, biće "otkrivena" sva poklapanja.

Primer za modifikatore

Poistovećivanje velikih i malih slova

Kada se zada modifikator i velika i mala slova ne moraju tačno da se poklope.

  • Bez i: "A" nije isto što i "a"
  • Sa i: "A" je isto što i "a"

  var t = "Ana je znala da je Aca namazao dva parčeta hleba.";
  
  var r1 = /a.a/;  
  var r2 = /a.a/i;
	

Poklapanja sa navedenim šablonima:

  1. "Ana je znala da je Aca namazao dva parčeta hleba.".
  2. "Ana je znala da je Aca namazao dva parčeta hleba.".

Pronalaženje svih poklapanja

Kada se zada modifikator g pronaći će sva poklapanja sa šablonom.

  • Bez g: samo prvo poklapanje
  • Sa g: sva poklapanja

  var t = "Ana je znala da je Aca namazao dva parčeta hleba.";
  
  var r1 = /a.a/g;  
  var r2 = /a.a/gi;  
	

Poklapanja sa navedenim šablonima:

  1. "Ana je znala da je Aca namazao dva parčeta hleba.".
  2. "Ana je znala da je Aca namazao dva parčeta hleba.".

Modifikator m ima smisla kada koristimo graničnike za početak i kraj stringa. Ako se ovaj modifikator zada, onda će se graničnici odnositi ne samo na realan početak i kraj stringa, već i na svaki novi red unutar stringa.

Primer za multiline modifikator

Kada se zada modifikator m svaki novi red se računa kao kraj, odnosno početak stringa.


	// string sada sadrži nove redove (\n)
  var t = "Ana je znala da je \nAca namazao \ndva parčeta hleba.";
  
  var r1 = /^A.a/g;    // na početku stringa ide slovo "A", pa bilo koji znak, pa slovo "a"
  var r2 = /^A.a/gm;   // na početku linije ide slovo "A", pa bilo koji znak, pa slovo "a"
	

Poklapanja sa navedenim šablonima:

  1. "Ana je znala da je
    Aca namazao
    dva parčeta hleba.
    ".
  2. "Ana je znala da je
    Aca namazao
    dva parčeta hleba.
    ".

U prvom primeru, pokušavamo da pronađemo sve pojave šablona, ali "priznaje" se samo realan početak stringa. U drugom primeru, zahvaljujući modifikatoru m, graničnik ^ označava svaki početak linije

regex-modifikatori-sr
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.