Regex w JavaScript | Wyjaśniono przykładami

Regex w JavaScript | Wyjaśniono przykładami
Kiedy deweloper po raz pierwszy spogląda na wyrażenia regularne lub wyrabia, wydaje się, że bełkot. Jednak mogą wyglądać, wyrażenia regularne są niezwykle przydatne i sprawiają, że będziesz skutecznym programistą. Koncepcja Regex jest trochę skomplikowana, jednak w tym poście przeprowadzimy Cię przez proste kroki wraz z przykładami, które pomogą Ci opanować Regex w JavaScript.

Co to jest Regex w JavaScript?

Regex lub wyrażenie regularne to po prostu ciąg, który definiuje wzór i jest bardzo przydatny w znalezieniu wzoru w ciągu lub zastąpieniu ciągu dopasowanym wzorem. Mówiąc najprościej, załóżmy, że chcesz zweryfikować adres e -mail lub numer telefonu z określonym wzorem, a następnie Regex jest przydatny.

Składnia regularnego:

var myregex = /abc /;

Załączamy wzór w układzie do przodu „/” jak pokazane powyżej. Możemy również użyć Regexp Konstruktor zdefiniowania wzoru od regularności:

var myRegex = new RegexP („ABC”);

Teraz, gdy wiemy, czym jest Regex i jaka jest jego składnia, zobaczmy teraz, jak określić wzór za pomocą Regex w JavaScript.

Określ wzór za pomocą Regex

Aby określić wzorce za pomocą Regex, używamy Metacharacters, które są znakami, które mają szczególne znaczenie. Metacharacters i to, co reprezentują w Regex, znajduje się w poniższej tabeli:

META PHARM Co to robi?
[] (Nawiasy kwadratowe) Cokolwiek piszemy w nawiasach kwadratowych, będzie dopasowane do danego ciągu. Na przykład [ABC] pasuje do a, b, I C znaki z określonym ciągiem. Możemy również określić zakres na przykład [A-F] jest taki sam jak [Alfabet] Lub [1-5] jest taki sam jak [12345].
^ (Symbol opieki) Symbol Caret służy do sprawdzenia, czy określony tekst lub ciąg zaczyna się od określonego znaku, czy nie e.G. ^a Pasuje jednak do ABC ^a nie pasuje do Bac. Symbol Caret w nawiasach kwadratowych służy do przyjmowania uzupełnienia określonych znaków. Na przykład [^abc] Określa to, z wyjątkiem a, b lub c Każda obecna postać zostanie dopasowana.
$ (Symbol dolara) $ Symbol jest używany wszędzie tam, gdzie chcemy sprawdzić, czy ciąg kończy się na określonym znaku, czy nie. Na przykład, A $ oznacza, że ​​jakikolwiek ciąg, z którym się dopasowujemy, powinien mieć na końcu, to znaczy amnezja będzie dopasowany do A $ Jednak serce nie.
* (Symbol gwiazdy) Symbol gwiazdy pasuje do 0 lub więcej wystąpień określonego wzoru lub znaku obecnego z symbolem gwiazdy w ciągu. Na przykład, Człowiek oznacza, że ​​wyszukiwanie m i znak w ciągu. Stąd Mn będzie miał 1 mecz. Główny nie będzie miał meczu jako a N I jest I pomiędzy.
+ (Plus symbol) Symbol plus jest jak symbol gwiazdy z wyjątkiem, że pasuje do 1 lub więcej wystąpień określonego wzoru lub postaci. Na przykład, kiedy Mn String jest szukany wyrażenia Ma+n Nie ma jednak dopasowania, gdy wyrażenie jest przeszukiwane przez człowieka, jest jedno dopasowanie.
(Aparat ortodontyczny) Aby mieć jasne zrozumienie aparatów ortodontycznych, najpierw zobaczmy następujący kod i-e 2,3 co oznacza, że ​​co najmniej 2 i co najwyżej 3 powtórzenia są możliwe z pozostawionego z niego wzoru. Na przykład wyrażenie A 2,3 Po dopasowaniu do ciągu „ABC DAT” nie będzie jednak pasował, gdy wyrażenie zostanie dopasowane do „ABC DAAT” będzie miał jeden mecz i-e daaT.
|. (Zmiana) Zmiana lub pionowy symbol paska jest używany dla operatora lub. Na przykład wyrażenie a | b wskazuje, że A Lub B powinien być obecny w określonym ciągu. Stąd fgh nie ma zapałek i ABC ma 2 mecze, które są Ab.
\ (Ukośnik wsteczny) Celem BackSlash jest ucieczka przed postaciami, a także ucieczka. Krótko mówiąc, jeśli nie masz pewności, czy postać zawiera szczególne znaczenie, czy nie, umieść backslash przed postacią. Stąd ten postać nie będzie traktowany na przykład w żaden specjalny sposób, \ $ a Wyrażenie będzie pasowało do dowolnego tekstu lub ciągu, który ma $ śledzony przez A.

Teraz, gdy wiemy, jak określić wzorce za pomocą Regex, pozwól nam teraz przejść przez kilka metod Regex, aby dopasować Regex z określonym ciągiem.

Wzory testów do dopasowywania

Wcześniej omówiliśmy, w jaki sposób możemy użyć konstruktora RegeXP do zainicjowania obiektu RegexP z określonym wzorem. Ten obiekt RegexP daje nam wiele wbudowanych metod, a jednym z nich jest test() metoda. test() Metoda jest bardzo przydatna, ponieważ sprawdza ciąg określonego wzoru w wyrażeniu regularnym. test() Metoda zwraca wartość logiczną, to znaczy, jeśli określony wzorze. Aby lepiej zrozumieć test() Metoda zobaczmy przykład:

var myRegex = /hello /;
var wyjściowy = MyRegex.Test („Witaj świat!');
konsola.log (wyjście); // PRAWDA

W powyższym kodzie najpierw zdefiniowaliśmy wzór Cześć a następnie użyłem wbudowanego testu metody () w określonym wzorze, aby sprawdzić, czy ciąg ciąg Witaj świecie! zawiera Hello czy nie. Wynik podano poniżej:

Zamiast wartości logicznej dopasowanie ciągów można również zwrócić z inną wbudowaną metodą, jaką jest metoda match (). Poniższy kod wdraża metodę Match ():

var mystring = "Hello World!";
// wzór
var myRegex = /hello /;
konsola.Log (MyString.mecz (MyRegex)); // Cześć

Zostanie zwrócona tablica, która będzie zawierać ciąg wejściowy do metody match (), indeks, na którym można znaleźć dopasowanie, a także sam dopasowanie.

Jeśli nie znaleziono meczu, wtedy zero będzie zwrócony:

var mystring = "Hello World!";
// wzór
var myRegex = /hi /;
konsola.Log (MyString.mecz (MyRegex)); // zero

Flagi wzoru

Widzieliśmy, że obiekt RegexP akceptuje wzór; Należy jednak zauważyć, że RegexP może również przyjąć opcjonalny parametr flagi. Flagi to tylko dodatkowe dodatki, które zmieniają zachowanie wyszukiwania.

Pierwsza flaga, którą omówimy, to Zignoruj ​​flagę oznaczone przez ja. Domyślnie wyszukiwanie wzoru w Regex jest wrażliwe na literę, więc aby ignorować przypadki. Na przykład:

var myRegex = /hello /i;
konsola.Log (MyRegex.Test („Witaj świat!")); // PRAWDA

Chociaż wzór ma Witam A ciąg w metodzie testowej ma pierwszą kapitał liter, jest to nadal dopasowanie, ponieważ użyliśmy flagi Ignoratu (i), dlatego wynik będzie prawdą:

Aby użyć flagi Ignoruj ​​z obiektem RegexP, skopiuj następujący kod:

var myRegex = new RegexP („hello”, „i”);
konsola.Log (MyRegex.Test („Witaj świat!")); // PRAWDA

Podobnie możemy użyć globalna flaga oznaczone przez G, którego funkcją jest zwrócenie wszystkich dopasowań w ciągu. Bez globalnej flagi, tylko pierwszy mecz jest zwracany. Poniższy kod używa flagi globalnej:

var mystring = 'Hello World! I Hello Universe!';;
var myRegex = /hello /gi;
var matches = [];
var mecz;
Do
Match = MyRegex.EXEC (MYSTRING);
if (mecz)
mecze.push (mecz);

while (dopasowanie != null)
konsola.log (dopasowania);

Najpierw zainicjowaliśmy MyString, który zawiera ciąg, który zostanie użyty do przeszukiwania wzoru, a następnie stworzyliśmy wzór wyrażenia regularnego zawierającego flagę globalną i ignoruj ​​flagę. Globalna flaga będzie poszukiwać wszystkich meczów, podczas gdy flaga Ignoruje wrażliwość na przypadki. W powyższym kodzie używana jest kolejna wbudowana metoda, jaka jest exec (), której funkcją jest zwrócenie tablicy zawierającej dopasowanie. Jeśli jednak nie było dopasowania między wzorem a ciągiem, wówczas zerowa zostanie zwrócona. Należy zauważyć, że metoda exec () zwraca tylko pojedynczy dopasowanie jednocześnie, dlatego używamy pętli zrób i przesuwamy wszystkie mecze do tablicy meczów. W końcu pocieszamy tablicę dopasowań, która zawiera wszystkie mecze:

Wniosek

Regex to ciąg, który definiuje wzór lub znajduje wzór w określonym ciągu. Używamy obiektu RegexP lub do przodu / do definiowania Regex. RegexP przyjmuje również opcjonalną flagę parametru I-E, która zmienia zachowanie wyszukiwania. Aby określić wzorce, używamy metacharakterów, które są niektórymi konkretnymi postaciami o specjalnych znaczeniach. Aby sprawdzić, czy pasuje on do ciągu, czy nie, używamy wbudowanych metod, takich jak test (), match () lub exec ().

W tym poście po pierwsze zdefiniowaliśmy, co jest Regex w JavaScript i co to jest składnia Regex w JavaScript. Następnie pokazaliśmy, jak określić wzorce za pomocą wzorców Regex i Test w JavaScript. Ostatecznie omówiliśmy dwie flagi, które są globalne i ignorują flagi.