Obiekt wyrażenia regularnego - RegExp
Do czego służą wyrażenia regularne?
- Tworzenie obiektu wyrażenia regularnego - RegExp
Jak utworzyć obiekt wyrażenia regularnego?
- Tworzenie nowej instancji wyrażenia regularnego - new RegExp
Jak utworzyć nową instancję obiektu wyrażenia regularnego?
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 typuRegExp
i argument flags został zdefiniowanySyntaxError
- 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 typuRegExp
i argument flags został zdefiniowanySyntaxError
- 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