Kurs języka HTML i CSS

Poradnik webmastera

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki

Obiekt RegExp

Email Drukuj PDF

Obiekt RegExp

Dostępność: od JavaScript 1.2 i JScript 3.0.

Przeglądarki: IE4, FF, NN4, OP7

Obiekt RegExp służy do przechowywania oraz obsługi wyrażeń regularnych. Obiekt tego typu może zostać utworzony na dwa sposoby: poprzez wykorzystanie literału oraz poprzez formalne wywołanie konstruktora. W pierwszym przypadku należy umieścić w kodzie wyrażenie zawarte pomiędzy prawymi ukośnikami, które może być dodatkowo zakończone znacznikami (flagami, z ang. flags):

/wyrażenie/[flagi]

W przypadku drugim wyrażenie tworzone jest za pomocą następującej konstrukcji:

new RegExp("wyrażenie"[, "flagi"])

Przykłady:

/(ab)+c/gi

new RegExp("(ab)+c", "gi")

Parametr flagi może być dowolną kombinacją liter:

i — oznacza, że w wyrażeniu ma być ignorowana wielkość liter;

g — oznacza, że przetwarzanie ma dotyczyć całego ciągu;

m — oznacza, że przetwarzanie ma dotyczyć ciągu zawierającego wiele wierszy.

Właściwości obiektu RegExp

Właściwości udostępniane przez obiekty typu RegExp zostały przedstawione w tabeli 3.7. Większość z nich jest dostępna we wszystkich popularnych przeglądarkach.

Tabela 3.7. Właściwości udostępniane przez obiekty RegExp

Nazwa

Znaczenie

Dostępność w JavaScript i JScript

Przeglądarki

global

Zawiera wartość true, jeśli został ustawiony atrybut g, lub false w przeciwnym przypadku.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4, OP7

ignoreCase

Zawiera wartość true, jeśli został ustawiony atrybut i, lub false w przeciwnym przypadku.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4, OP7

input

Ciąg znaków, na którym przeprowadzana jest operacja dopasowania do wzorca.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4

lastIndex

Pozycja ostatniego pasującego wzorca.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4, OP7

lastMatch

Ostatni pasujący wzorzec.

Od JavaScript 1.2 i JScript 5.5

IE5.5, FF, NN6, OP7

lastParen

Ostatnie pasujące do wzorca wyrażenie ujęte w nawiasy.

Od JavaScript 1.2 i JScript 5.5

IE5.5, FF, NN6

leftContext

Tekst znajdujący się przed ostatnio odnalezionym wzorcem.

Od JavaScript 1.2 i JScript 5.5

IE5.5, FF, NN6

multiline

Zawiera wartość true, jeśli został ustawiony atrybut m, lub false w przeciwnym przypadku.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4

rightContext

Tekst znajdujący się za ostatnio odnalezionym wzorcem.

Od JavaScript 1.2 i JScript 5.5

IE5.5, FF, NN6

source

Zawiera treść wyrażenia regularnego.

Od JavaScript 1.2 i JScript 3.0

IE4, FF, NN4, OP7

Metody obiektu RegExp

Metoda compile

Składnia: regexp.compile(wyrażenie[, flagi])

Dostępność: od JavaScript 1.2 i JScript 3.0

Przeglądarki: IE4, FF, NN4, OP7

Metoda compile dokonuje kompilacji wyrażenia wyrażenie i zwraca nowy obiekt typu RegExp odpowiadający temu wyrażeniu. Wyrażenie może zawierać flagi i, g, m, których znaczenie jest takie jak w przypadku konstrukcji nowego wyrażenia. Obecnie ta metoda uważana jest za przestarzałą.

Metoda exec

Składnia: regexp.exec(str)

Dostępność: od JavaScript 1.2 i JScript 3.0

Przeglądarki: IE4, FF, NN4, OP7

Metoda exec wykonuje przeszukanie ciągu str, wykorzystując wzorzec zawarty w wyrażeniu reprezentowanym przez obiekt regexp. Zwraca tablicę wynikową. Jeżeli wyrażenie nie zawiera atrybutu g, pasujący ciąg, o ile zostanie odnaleziony, znajdzie się w komórce o indeksie 0, a w kolejnych komórkach znajdą się kolejne podciągi odpowiadające kolejnym grupowanym wyrażeniom (o ile zastosowano grupowanie). Całkowita liczba komórek będzie zawarta, podobnie jak w każdej innej tablicy, we właściwości lenght. Oprócz tego w tablicy znajdą się właściwość index zawierająca indeks znaku, w którym został znaleziony ciąg pasujący do wzorca, a także właściwość input zawierająca przeszukiwany ciąg znaków (argument metody exec). Przykład ilustrujący zawartość tablicy wynikowej znajduje się na listingu 3.22.

Listing 3.22. Przetwarzanie wyrażeń regularnych

<script type="text/javascript">

var str = "Ala ma kota, Ala ma też psa.";

var regexp = /Ala/;

var wynik = regexp.exec(str);

for(index in wynik){

  document.write("wynik[" + index + "] = " + wynik[index] + "<br />");

}

</script>

Jeśli metoda exec jest wywoływana na rzecz obiektu reprezentującego wyrażenie z ustawionym atrybutem g, musi umożliwić odszukanie wszystkich (a nie tylko pierwszego) występujących w tekście ciągów pasujących do wzorca. Postać tablicy wynikowej jest wtedy taka sama jak w wyrażeniach bez atrybutu g, ale przeszukiwanie ciągu rozpoczyna się od znaku wskazywanego przez właściwość lastIndex. Jeżeli wzorzec zostanie odnaleziony, zwracana jest tablica, a właściwość lastIndex jest ustawiana na pierwszy znak za odnalezionym ciągiem. Jeżeli wzorzec nie zostanie odnaleziony, zwracana jest wartość null, a właściwość lastIndex jest zerowana. Oznacza to, że przeszukiwanie globalne za pomocą metody exec można przeprowadzić w prosty sposób przy użyciu pętli while. Skrypt ilustrujący to zagadnienie znajduje się na listingu 3.23.

Listing 3.23. Przeszukiwanie globalne przy użyciu pętli typu while

<script type="text/javascript">

var str = "Ala ma kota, Ala ma też psa.";

var regexp = /Ala/g;

 

while((wynik = regexp.exec(str)) != null){

  for(index in wynik){

    document.write("wynik[" + index + "] = " + wynik[index] + "<br />");

  }

  document.write("<hr>");

}

</script>

Metoda test

Składnia: regexp.test(str)

Dostępność: od JavaScript 1.2 i JScript 3.0

Przeglądarki: IE4, FF, NN4, OP7

Metoda test sprawdza, czy w ciągu str jest zawarty wzorzec reprezentowany przez obiekt regexp. Jeśli tak, zwraca wartość true; jeśli nie, zwraca wartość false. Przykładowe wywołanie:

/ala/i.test("Ola ma kota, a Ala ma psa.")

da w wyniku wartość true.

Metoda toString

Składnia: regexp.toString()

Dostępność: od JavaScript 1.2 i JScript 3.0

Przeglądarki: IE4, FF, NN4, OP7

Metoda toString zwraca ciąg znaków będący reprezentacją obiektu, na rzecz którego została wywołana. W przypadku obiektu typu RegExp będzie to ciąg znaków zawierający wyrażenie regularne.

 

Nowości Helionu

Statystyki

Użytkowników : 766
Artykułów : 513
Zakładki : 28
Odsłon : 15341746