Przejdź do treści

Obiekt wyrażenia regularnego - RegExp

Do czego służą wyrażenia regularne?

Tworzenie obiektu wyrażenia regularnego - RegExp

Jak utworzyć obiekt wyrażenia regularnego?

RegExp()
RegExp(pattern)
RegExp(pattern, flags)
Parametry:
String|RegExp pattern - wzorzec (domyślnie: "(?:)")
String flags - flagi:
  • g - dopasowanie globalne
  • i - ignorowanie wielkości liter
  • m - dopasowanie wielu linii
Wartość:
RegExp - instancja obiektu wyrażenia regularnego
Wyjątki:
TypeError - pattern jest typu RegExp i argument flags został zdefiniowany
SyntaxError - nieprawidłowy wzorzec lub flagi

Jeżeli pattern jest instancją obiektu RegExp, a argument flags nie został podany (albo wynosi undefined), funkcja zwraca obiekt przekazany jako pattern. W przeciwnym razie następuje wywołanie: new RegExp(...).

Przykład RegExp

var x = /abc/;
RegExp(x) === x;     // true
RegExp("abc", "i");  // /abc/i
 
RegExp(x, "i");      // TypeError
RegExp("(");         // SyntaxError
RegExp("abc", "x");  // SyntaxError
RegExp("abc", "gg"); // SyntaxError

Tworzenie nowej instancji wyrażenia regularnego - new RegExp

Jak utworzyć nową instancję obiektu wyrażenia regularnego?

new RegExp

new RegExp()
new RegExp(pattern)
new RegExp(pattern, flags)
Parametry:
String|RegExp pattern - wzorzec (domyślnie: "(?:)")
String flags - flagi:
  • g - dopasowanie globalne
  • i - ignorowanie wielkości liter
  • m - dopasowanie wielu linii
Wartość:
RegExp - nowa instancja obiektu wyrażenia regularnego
Wyjątki:
TypeError - pattern jest typu RegExp i argument flags został zdefiniowany
SyntaxError - nieprawidłowy wzorzec lub flagi

Tworzy nową instancję obiektu wyrażenia regularnego.

Przy definiowaniu wzorca należy zwrócić uwagę na prawidłowy zapis znaków specjalnych wyrażeń regularnych. Chcąc pozbyć się specjalnego działania znaku, gdy podajemy go jako tekst - inaczej niż w przypadku literału wyrażenia regularnego - musimy poprzedzić taki znak specjalny dwoma, a nie jednym odwróconym ukośnikiem. Znaków ukośnika nie trzeba już niczym poprzedzać, ponieważ funkcja powinna zrobić to automatycznie. Dlatego zapis new RegExp("a/b\\(c\\)d\\\\e") będzie równoważny: /a\/b\(c\)d\\e/.

Możliwe jest jednoczesne podanie kilku flag - np.: "gi". Kolejność ich wymieniania nie ma znaczenia, ale ta sama flaga nie może zostać powtórzona.

Przykład new RegExp

new RegExp("abc", "i");  // /abc/i
 
new RegExp(/abc/, "i");  // TypeError
new RegExp("(");         // SyntaxError
new RegExp("abc", "x");  // SyntaxError
new RegExp("abc", "gg"); // SyntaxError

source

O.source
Parametry:
RegExp O - instancja wyrażenia regularnego
Wartość:
String - wartość wyrażenia regularnego

Przechowuje wartość wyrażenia regularnego, którą można przekazać do konstruktora, jako argument pattern. Tej wartości nie można zmieniać ani nie jest ona dostępna w pętli for-in

Przykład

/(ab)c/ig.source;                      // "(ab)c"
new RegExp("a/b\\(c\\)d\\\\e").source; // "a/b\(c\)d\\e"
 
var x = /abc/;
x.source;                              // "abc"
x.source = "cde";
x.source;                              // "abc"

global

O.global
Parametry:
RegExp O - instancja wyrażenia regularnego
Wartość:
Boolean - czy dopasowanie jest globalne (ustawiona flaga g)

Pozwala sprawdzić, czy definiując obiekt wyrażenia regularnego, ustawiono flagę g. Tej wartości nie można zmieniać ani nie jest ona dostępna w pętli for-in.

Przykład

/abc/gi.global;                 // true
new RegExp("abc", "gi").global; // true
 
/abc/i.global;                  // false
new RegExp("abc").global;       // false
 
var x = /abc/g;
x.global;                       // true
x.global = false;
x.global;                       // true

ignoreCase

O.ignoreCase
Parametry:
RegExp O - instancja wyrażenia regularnego
Wartość:
Boolean - czy wielkość liter jest ignorowana (ustawiona flaga i)

Pozwala sprawdzić, czy definiując obiekt wyrażenia regularnego, ustawiono flagę i. Tej wartości nie można zmieniać ani nie jest ona dostępna w pętli for-in.

Przykład

/abc/gi.ignoreCase;                 // true
new RegExp("abc", "gi").ignoreCase; // true
 
/abc/g.ignoreCase;                  // false
new RegExp("abc").ignoreCase;       // false
 
var x = /abc/i;
x.ignoreCase;                       // true
x.gnoreCase = false;
x.ignoreCase;                       // true

multiline

O.multiline
Parametry:
RegExp O - instancja wyrażenia regularnego
Wartość:
Boolean - czy nastąpi dopasowanie wielu linii (ustawiona flaga m)

Pozwala sprawdzić, czy definiując obiekt wyrażenia regularnego, ustawiono flagę m. Tej wartości nie można zmieniać ani nie jest ona dostępna w pętli for-in.

Przykład

/abc/gm.multiline;                 // true
new RegExp("abc", "gm").multiline; // true
 
/abc/g.multiline;                  // false
new RegExp("abc").multiline;       // false
 
var x = /abc/m;
x.multiline;                       // true
x.multiline = false;
x.multiline;                       // true

lastIndex

O.lastIndex
Parametry:
RegExp O - instancja wyrażenia regularnego
Wartość:
Number - pozycja w tekście (licząc od zera), od której rozpocząć wyszukiwanie (domyślnie: 0)

Przechowuje pozycję w tekście, od której powinno rozpocząć się wyszukiwanie wzorca. Ta właściwość nie będzie dostępna w pętli for-in, ale można jej zmienić wartość. Dzięki temu przy wyszukiwaniu dopasowań do wzorca możemy pominąć początek tekstu. W przypadku dopasowania globalnego - kiedy wyrażenie regularne posiada flagę g - właściwość lastIndex jest automatycznie ustawiana przez funkcje: RegExp.prototype.exec i RegExp.prototype.test.

Przykład

var x = /(ab)c/gi;
x.lastIndex;            // 0
x.lastIndex = 3;
x.lastIndex;            // 3
x.exec("ABCd efg abc"); // ["abc", "ab"]
x.lastIndex;            // 12
Facebook