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.