Wyrażenia regularne i obiekt RegExp
Wyrażenie regularne to obiekt opisujący wzorzec znaków.
JavaScript RegExp klasa reprezentuje wyrażenia regularne, a zarówno String, jak i RegExp Zdefiniuj metody, które używają wyrażeń regularnych do wykonywania zaawansowanych funkcji dopasowywania wzorców oraz wyszukiwania i zamieniania tekstu.
Składnia
Wyrażenie regularne można zdefiniować za pomocą RegExp () konstruktor, jak następuje -
var pattern = new RegExp(pattern, attributes);
or simply
var pattern = /pattern/attributes;
Oto opis parametrów -
pattern - ciąg określający wzorzec wyrażenia regularnego lub innego wyrażenia regularnego.
attributes - Opcjonalny ciąg zawierający dowolny z atrybutów „g”, „i” i „m”, które określają odpowiednio dopasowanie globalne, bez rozróżniania wielkości liter i wielowierszowe.
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żesz również użyć zakresu [0-3], aby dopasować dowolną cyfrę dziesiętną z zakresu od 0 do 3, lub zakresu [bv], aby dopasować dowolną małą literę odb przez v.
Kwantyfikatory
Częstotliwość lub położenie sekwencji znaków w nawiasach i pojedynczych znaków można oznaczyć znakiem specjalnym. Każdy znak specjalny ma określoną konotację. Wszystkie flagi +, *,? I $ następują po sekwencji znaków.
Sr.No. | Wyrażenie i opis |
---|---|
1 | p+ Pasuje do dowolnego ciągu zawierającego jeden lub więcej znaków p. |
2 | p* Pasuje do dowolnego łańcucha zawierającego zero lub więcej znaków p. |
3 | p? Pasuje do dowolnego ciągu zawierającego co najwyżej jeden p. |
4 | p{N} Pasuje do dowolnego ciągu zawierającego sekwencję N p |
5 | p{2,3} Pasuje do dowolnego ciągu zawierającego sekwencję dwóch lub trzech p. |
6 | p{2, } Pasuje do dowolnego ciągu zawierającego sekwencję co najmniej dwóch p. |
7 | p$ Dopasowuje dowolny ciąg z literą p na końcu. |
8 | ^p Dopasowuje dowolny ciąg z literą p na początku. |
Przykłady
Poniższe przykłady wyjaśniają więcej na temat dopasowywania znaków.
Sr.No. | Wyrażenie i opis |
---|---|
1 | [^a-zA-Z] Pasuje do dowolnego ciągu niezawierającego żadnego ze znaków od a przez z i A przez Z. |
2 | p.p Pasuje do dowolnego ciągu zawierającego p, po którym następuje dowolny znak, po którym następuje kolejny p. |
3 | ^.{2}$ Pasuje do dowolnego ciągu zawierającego dokładnie dwa znaki. |
4 | <b>(.*)</b> Pasuje do dowolnego ciągu zawartego w <b> i </b>. |
5 | p(hp)* Pasuje do dowolnego ciągu zawierającego p po którym następuje zero lub więcej wystąpień sekwencji hp. |
Dosłowne znaki
Sr.No. | Opis postaci |
---|---|
1 | Alphanumeric Samo |
2 | \0 Znak NUL (\ 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 nowej linii \ n |
Metaznaki
Metaznak to po prostu znak alfabetyczny poprzedzony odwrotnym ukośnikiem, który nadaje kombinacji specjalne znaczenie.
Na przykład możesz wyszukać dużą sumę pieniędzy, używając metaznaku „\ d”: /([\d]+)000/Tutaj \d wyszuka dowolny ciąg znaków numerycznych.
Poniższa tabela zawiera 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 niecyfrowa |
6 | \w znak słowa (az, AZ, 0-9, _) |
7 | \W znak niebędący słowem |
8 | [\b] dosłowny znak cofania (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 |
Modyfikatory
Dostępnych jest kilka modyfikatorów, które mogą uprościć sposób pracy regexps, jak rozróżnianie wielkości liter, wyszukiwanie w wielu wierszach itp.
Sr.No. | Modyfikator i opis |
---|---|
1 | i Wykonuj dopasowywanie bez rozróżniania wielkości liter. |
2 | m Określa, że jeśli ciąg ma znaki nowej linii lub powrotu karetki, operatory ^ i $ będą teraz dopasowywane do granicy nowej linii zamiast granicy ciągu |
3 | g Wykonuje globalne dopasowanie, czyli wyszukuje wszystkie dopasowania zamiast przerywać po pierwszym dopasowaniu. |
Właściwości RegExp
Oto lista właściwości powiązanych z RegExp i ich opis.
Sr.No. | Właściwość i opis |
---|---|
1 | constructor
Specifies the function that creates an object's prototype. |
2 | global
Specifies if the "g" modifier is set. |
3 | ignoreCase
Specifies if the "i" modifier is set. |
4 | lastIndex
The index at which to start the next match. |
5 | multiline
Specifies if the "m" modifier is set. |
6 | source
The text of the pattern. |
In the following sections, we will have a few examples to demonstrate the usage of RegExp properties.
RegExp Methods
Here is a list of the methods associated with RegExp along with their description.
Sr.No. | Method & Description |
---|---|
1 | exec()
Executes a search for a match in its string parameter. |
2 | test()
Tests for a match in its string parameter. |
3 | toSource()
Returns an object literal representing the specified object; you can use this value to create a new object. |
4 | toString()
Returns a string representing the specified object. |
In the following sections, we will have a few examples to demonstrate the usage of RegExp methods.