ES6 - RegExp
Wyrażenie regularne to obiekt opisujący wzorzec znaków. Wyrażenia regularne są często skracane „regex”Lub„regexp”.
JavaScript RegExp reprezentuje wyrażenia regularne, a zarówno String, jak i RegExp definiują metody, które używają wyrażeń regularnych do wykonywania zaawansowanych funkcji dopasowywania wzorców oraz funkcji wyszukiwania i zamiany w tekście.
Wyrażenie regularne można zdefiniować jako -
var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;
Atrybut może mieć dowolną kombinację następujących wartości.
Sr.No | Atrybut i opis |
---|---|
1 |
G Mecz globalny |
2 |
I Ignoruj wielkość liter |
3 |
M Wielowierszowe; traktuj znaki początku i końca (^ i $) jako pracę nad wieloma wierszami (tj. dopasuj początek lub koniec każdego wiersza (oddzielone \ n lub \ r), a nie tylko sam początek lub koniec całego ciągu wejściowego ) |
4 |
U Unicode; traktuj wzorzec jako sekwencję punktów kodowych Unicode |
5 |
Y Lepki; dopasowuje tylko z indeksu wskazanego przez właściwość lastIndex tego wyrażenia regularnego w ciągu docelowym (i nie próbuje dopasować z żadnych późniejszych indeksów) |
Konstruowanie wyrażeń regularnych
Wsporniki
Nawiasy ([]) mają specjalne znaczenie, gdy są używane w kontekście wyrażeń regularnych. Służą do wyszukiwania szeregu znaków.
Sr.No | Wyrażenie i opis |
---|---|
1 |
[...] Dowolny znak w nawiasach |
2 |
[^...] Dowolny znak spoza nawiasów |
3 |
[0-9] Dopasowuje dowolną cyfrę dziesiętną od 0 do 9 |
4 |
[a-z] Pasuje do dowolnego znaku z małych liter a małymi literami z |
5 |
[A-Z] Dopasowuje dowolny znak z wielkich liter A przez wielkie litery Z |
6 |
[a-Z] Pasuje do dowolnego znaku z małych liter a przez wielkie litery Z |
Przedstawione powyżej zakresy są ogólne; można również użyć zakresu [0-3], aby dopasować dowolną cyfrę dziesiętną od 0 do 3, lub zakresu [bv], aby dopasować dowolną małą literę od b do v.
Kwantyfikatory
Częstotliwość lub położenie sekwencji znaków w nawiasach i pojedyncze znaki można oznaczyć znakiem specjalnym. Każdy znak specjalny ma określoną konotację. Plik+, *, ?, i $ wszystkie flagi następują po sekwencji znaków.
Sr.No | Wyrażenie i opis |
---|---|
1 |
p+ Pasuje do dowolnego ciągu zawierającego co najmniej jeden p. |
2 |
p* Pasuje do dowolnego ciągu zawierającego zero lub więcej p's |
3 |
p? Pasuje do dowolnego ciągu zawierającego jeden lub więcej p's |
4 |
p{N} Pasuje do dowolnego ciągu zawierającego sekwencję N p's |
5 |
p{2,3} Pasuje do dowolnego ciągu zawierającego sekwencję dwóch lub trzech p's |
6 |
p{2, } Pasuje do dowolnego ciągu zawierającego sekwencję co najmniej dwóch p's |
7 |
p$ Pasuje do dowolnego ciągu z p na końcu |
8 |
^p Pasuje do dowolnego ciągu z p na początku |
9 |
[^a-zA-Z] Pasuje do dowolnego ciągu niezawierającego żadnego ze znaków od a przez z i A przez Z |
10 |
p.p Pasuje do dowolnego ciągu zawierającego p, po którym następuje dowolny znak, po którym następuje kolejny p |
11 |
^.{2}$ Pasuje do dowolnego ciągu zawierającego dokładnie dwa znaki |
12 |
<b>(.*)</b> Pasuje do dowolnego ciągu zawartego w <b> i </b> |
13 |
p(hp)* Pasuje do dowolnego ciągu zawierającego p po którym następuje zero lub więcej wystąpień sekwencji hp |
Znaki dosłowne
Sr.No | Opis postaci |
---|---|
1 |
Alphanumeric Samo |
2 |
\0 Znak NULL (\ u0000) |
3 |
\t Karta (\ u0009) |
4 |
\n Nowa linia (\ u000A) |
5 |
\v Zakładka pionowa (\ u000B) |
6 |
\f Plik danych (\ u000C) |
7 |
\r Powrót karetki (\ u000D) |
8 |
\xnn Znak łaciński określony przez liczbę szesnastkową nn; na przykład \ x0A to to samo, co \n |
9 |
\uxxxx Znak Unicode określony przez liczbę szesnastkową xxxx; na przykład \ u0009 to to samo co\t |
10 |
\cX Znak kontrolny ^ X; na przykład \ cJ jest odpowiednikiem znaku nowego wiersza \n |
Meta-postacie
ZA meta-character to po prostu znak alfabetu poprzedzony odwrotnym ukośnikiem, który nadaje kombinacji specjalne znaczenie.
Na przykład możesz wyszukać dużą sumę pieniędzy za pomocą '\d'znak meta: / ([\ d] +) 000 /. Tutaj,\d wyszuka dowolny ciąg znaku numerycznego.
W poniższej tabeli wymieniono zestaw metaznaków, których można używać w wyrażeniach regularnych w stylu PERL.
Sr.No | Opis postaci |
---|---|
1 |
. Pojedynczy znak |
2 |
\s Biały znak (spacja, tabulator, nowa linia) |
3 |
\S Znak niebędący białymi znakami |
4 |
\d Cyfra (0–9) |
5 |
\D Niecyfrowe |
6 |
\w Znak słowa (az, AZ, 0-9, _) |
7 |
\W Znak niebędący słowem |
8 |
[\b] Dosłowny backspace (przypadek specjalny) |
9 |
[aeiou] Dopasowuje pojedynczy znak w podanym zestawie |
10 |
[^aeiou] Dopasowuje pojedynczy znak poza podanym zestawem |
11 |
(foo|bar|baz) Pasuje do dowolnej podanej alternatywy |
Właściwości RegExp
Sr.No | Właściwości i opis |
---|---|
1 |
RegExp.prototype.flags
Ciąg zawierający flagi obiektu RegExp |
2 |
RegExp.prototype.global
Czy testować wyrażenie regularne pod kątem wszystkich możliwych dopasowań w ciągu, czy tylko względem pierwszego |
3 |
RegExp.prototype.ignoreCase
Czy ignorować wielkość liter podczas próby dopasowania w ciągu |
4 |
RegExp.prototype.lastIndex
Czy właściwość odczytu / zapisu obiektów RegExp. |
5 |
RegExp.prototype.multiline
Określa, czy wyszukiwać w łańcuchach w wielu wierszach |
6 |
RegExp.prototype.source
Tekst wzoru |
Metody RegExp
Sr.No | Metoda i opis |
---|---|
1 |
RegExp.prototype.exec ()
Wykonuje wyszukiwanie dopasowania w parametrze ciągu |
2 |
RegExp.prototype.test ()
Testuje dopasowanie w parametrze ciągu |
3 |
RegExp.prototype.match ()
Wykonuje dopasowanie do podanego ciągu i zwraca wynik dopasowania |
4 |
RegExp.prototype.replace ()
Zastępuje dopasowania w podanym ciągu nowym podciągiem |
5 |
RegExp.prototype.search ()
Przeszukuje dopasowanie w podanym ciągu i zwraca indeks wzorca znalezionego w ciągu |
6 |
RegExp.prototype.split ()
Dzieli dany ciąg na tablicę, rozdzielając ciąg na podciąg |
7 |
RegExp.prototype.toString ()
Zwraca ciąg znaków reprezentujący określony obiekt. Zastępuje metodęObject.prototype.toString () |