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.