565 Shares 8844 views

Javascript regularne przykłady ekspresyjne, sprawdź wyrażeń regularnych

Przed pojawieniem się języka hipertekstowych, ale raczej, aż stało się jasne, że nie powinniśmy tylko patrzeć, ale aby to zrobić, pod pewnymi warunkami, w określonym miejscu, w zmienionych danych w odpowiednich ilościach, zwykle wyszukiwania i zamiany funkcji organizowane każdego zaawansowanego programista. Tworzenie dzieł sztuki wyszukiwania w językach programowania, baz danych i celował w formach warunkach pomiarowych, wyposażony procedur przechowywanych, wyzwalaczy i innych środków nieporęczne przykładowych utworów relacyjny informacyjnych. Pojawienie wyrażenia regularnego do rewolucji nie prowadzi, ale to był użyteczny i wygodny sposób, aby znaleźć i wymienić informacje. Na przykład, wyrażenia regularne JavaScript email znacznie uprościć rejestrację gości, nie załadować stronę z wysyłaniem wiadomości do nieistniejących adresów.

Powiedzieć, że JavaScript wyrażenie regularne jest znacznie lepsza sekwencje produmannnyh indexOf () wywołuje w ramach konwencjonalnej cyklicznych i operatorów, nie można jednak powiedzieć, że dokonał kod skryptu jest zwarta, ale mało zrozumiałe dla niewtajemniczonych może być jednoznaczny.

Obiekt RegExp = + silnik szablon

Wyrażenia regularne – jest silnikiem szablon +. Pierwszym z nich jest rzeczywiście wyrażenie regularne – obiekt JavaScript – RegExp, drugi – ten szablon wykonawca, stosuje się go do linii. Silniki, które implementują wyrażenia regularne dla każdego języka programowania są różne. I choć nie wszystkie różnice są znaczne, to należy przypomnieć, jak należy uważnie sprawdzić wyrażenie regularne przed jego funkcjonowania.

Specjalny zapis podczas pisania wyrażeń regularnych jest bardzo łatwy w użyciu i bardzo skuteczne, ale wymaga opieki, schludność i cierpliwości od dewelopera. Przez wyrażenie regularne wzory notacji trzeba się przyzwyczaić. To nie jest fanaberia, to jest logika mechanizmu wdrażania «wyrażeń regularnych JavaScript.”

regularny wzór ekspresji

Dozwolone dwie opcje:

var expOne = / ABC * / I;

var expTwo = RegExp ( "abc *", "I");

Typowo stosuje się pierwszy sposób. W drugim przypadku, cytaty, ponieważ użycie znaku „”, należy uciec się ogólnymi zasadami.

„I” – znacznik wskazujący „wielkość liter ma znaczenie”. Można również użyć flagi G „-«Global Search”i 'M' – poszukiwanie multi-line.

Symbol „/” do wskazania wspólnego korzystania z szablonu.

Początek i koniec wyrażenia regularnego

The „^” definiuje znak (ów), z którego można rozpocząć wyrażenia regularnego, a „$”, który określa charakter (s) musi być na końcu. Nie należy eksperymentować z nimi w środku wyrazu, gdzie mają inne znaczenie.

Na przykład,

var eRegExp = nowy RegExp (cRegExp 'I');

cRegRes var = '';

var sTest = 'ABCz';

if (eRegExp.test (sTest)) {

cRegRes + = '- tak';

} Else {

cRegRes + = '- Nie';

}

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'Ekspresja /' + cRegExp + '/ dla wiersza "' + sTest + '"' + cRegRes.

Element „scTestLine” spowoduje (zmienna cRegExp ma odpowiednie znaczenie)

Wyrażenie / ^ ABCz $ / za napisu "ABCz" – Yes

Jeśli usuniesz „ja” flagę, wynik jest:

Wyrażenie / ^ ABCz $ / za napisu "ABCz" – Brak

Zawartość wyrażenia regularnego

Wyrażenie regularne jest ciągiem znaków, który jest przedmiotem poszukiwań. Wyrażenie / QWERTY / szuka wpisu jest to sekwencja:

Wyrażenie / QWERTY / dla znaków "qwerty" – Yes

Wyrażenie / QWERTY / dla znaków "123qwerty456" – Yes

Zmiany „^” są wyrażeniami:

Wyrażenie / ^ qwerty / dla znaków "123qwerty456" – Brak

Wyrażenie / ^ qwerty / dla znaków "qwerty456" – Yes

Podobnie, na końcu linii symbolu. Wyrażenia regularne pozwalają na spójność, na przykład: [az] [AZ], [0-9] – wszystkie litery alfabetu w tym przypadku lub liczb. Rosyjskie litery mogą być również używane, ale należy zwrócić uwagę na kodowanie ciągów (która jest poszukiwana, która jest poszukiwana) i stron. Często rosyjskie litery, jak i znaki specjalne, korzystne jest, aby ustawić kody.

Podczas formowania wyrażeniem można określić możliwości obecności pewnych symboli w określonym miejscu, a ich ilość podano w następujący sposób: „*” = 0 powtórzenie lub więcej razy; „+” = 1 lub wielokrotnie powtarzać; {1} jest taka sama, a '+'; {N} = dokładnie powtórzenie N razy; {N} = N powtórzenie lub więcej razy; {N, m} = powtórzenie n do m razy.

Używanie nawiasów, można określić charakter zestaw opcji. Wygląda to tak. [Abcd] = [AD] = co cztery symbolem 'a', 'b', 'c' lub 'd'. Można określić inaczej. Każda postać innych niż te określone w zestawie: [^ ABCD] = dowolny inny charakter niż „a”, „b”, „c” lub „d”. '?' To oznacza, że w tym momencie symbol nie może być. '' określa dowolny znak inny niż wskazujący przełamane. Ten ' N', ' r' ' u2028' lub ' u2029'. Wyrażenie ' s * | S *' = '[ s | S] *' oznacza poszukiwanie jakiegokolwiek charakteru, w tym nowej linii.

Uproszczone wersje wyrażenia regularnego

Wyrażenie „[ s | S] *” – przestrzeń poszukiwań, lub jej brak, to jest wszystko, co jest na linii. W tym przypadku symbol ' s' oznacza miejsce, a ' S' – jego nieobecność.

Podobnie, można użyć „ d” aby szukać cyfr po przecinku, a „ D” znaleźć charakter non-numeryczną. Oznaczenie „ f” „R” i „ n” odpowiada wysuwu powrotu karetki i składzie paszy.

Zakładka postać – ' t', pionowe – ' v'. Oznaczenie ' w' wyszukuje dowolny znak alfabetu łacińskiego (litery, cyfry i znak podkreślenia z) = [a-zA-z0-9_].

Oznaczenie ' W' jest równoznaczne z [^ A Za-z0-9_]. Oznacza to, że dowolny znak nie jest literą alfabetu, numer, lub „_”.

Szukaj znak ' 0' = wyszukiwania znaków NUL. Szukaj ' xhh' lub ' uhhhh' = Szukaj znakowy kod lub HHHH HH odpowiednio. H – szesnastkowy.

Zalecana sformułowanie i kodowanie wyrażenia regularnego

Każde wyrażenie regularne jest ważne, aby dokładnie przetestowany na różnych wersjach wierszy.

Z doświadczeniem tworząc regularny błąd wyrażenie będzie mniejszy, ale jednak zawsze należy pamiętać, że ich znajomość zasad pisania wyrażeń regularnych nie może być prawda, zwłaszcza gdy „regular season” przenosi się z jednego języka na inny.

Wybór między Classic (dokładne wskazania) i uproszczonej wersji wyrażenia regularnego, lepiej jest wolą pierwszy. Wszakże klasyków jest zawsze wyraźnie wskazano, że zarówno poszukiwane. Jeśli wyrażenie regularne lub ciąg wyszukiwania mają rosyjskie litery, powinno prowadzić do pojedynczych kodujących wszystkich linii i strony, na której funkcjonuje znaleźć kod JavaScriptu wykonuje wyrażenie regularne.

Gdy jest przetwarzanie charakter, niż alfabet łaciński, warto rozważyć wskazanie kodów znaków, a nie samych znaków.

Przy realizacji algorytmów wyszukiwania w JavaScript wyrażenie regularne powinno być dokładnie sprawdzone. Szczególnie ważne jest, aby kontrolować kodowanie znaków.

Nawiasy w wyrażeniu regularnym

Wsporniki zdefiniować opcje dla symbolu, który musi być lub nie być w określonym miejscu, a runda – warianty sekwencji. Ale to tylko ogólna zasada. Od tego nie ma wyjątku, ale istnieje duża różnorodność zastosowań.

var cRegExp = "[az] * (PNG | jpg | gif).";

var eRegExp = nowy RegExp (cRegExp 'I');

cRegRes var = '';

var sTest = 'picture.jpg';

if (eRegExp.test (sTest)) {

cRegRes + = '- tak';

} Else {

cRegRes + = '- Nie';

}

wyniki:

/[az]*.(png|jpg|gif)/ wyrażenie na linii „picture.jpg” – Yes

/^[ad][az]*.(png|jpg|gif)/ wyrażenie dla linii „picture.jpg” – brak

/^[ad][az]*.(png|jpg|gif)/ wyrażenie na linii „apicture.jpg” – Yes

/^[ad][az]*.(png|jpg|gif)/ wyrażenie dla linii „apicture.jg” – brak

Należy zauważyć, że wszystko, a następnie gwiazdka może występować zerowe czasy. Oznacza to, że „regular season” może działać w nieoczekiwany sposób przynajmniej.

Sprawdzić RegExp – testy e-mail

Na wyrażenie regularne JavaScript otrzymanego dwie metody, testy i exec, i może być stosowany w liniach obiektów (string) w ich metod (funkcji): wyszukiwanie, Split, wymieniać i łączyć.

Metoda badania wykazano już, to pozwala na sprawdzenie poprawności wyrażenia regularnego. Wynik Metoda: prawda / fałsz.

Rozważmy następujące wyrażenia regularne JavaScript. Sprawdzić e-mail z liczby „trudne, ale na pewno”:

var eRegExp = /^(([^()[]\.,;:s@"]+(.[^()[]\.,;:s @ "] +) *) | (." + „)) @ (( [[0-9] {1,3} [0-9] {1,3} [0-9] {.. . 1,3} [0-9] {1,3}]) | (. ([a-zA-Z -0-9] + ) + [a-zA-Z] {2}) ) $ /;

VAR ciąg sTest ='[email protected] „daje prawdziwe, to nie jest to ciąg jest prawidłowy adres e-mail Adres. Badanie zostało przeprowadzone przez eRegExp.test (sTest).

Praktyczne wykorzystanie: leczenie e-mail

Sposób Exec zapewnia układ wyjściowy się:

var aResult = eRegExp.exec (sTest);

cRegRes = '
' + aResult.length + '
';
dla (var i = 0; i <aResult.length; i ++) {
cRegRes + = aResult [b] + '
';
}

To daje następujący wynik:

9
[email protected]
Slava.Chip
Slava.Chip
.Chip
niezdefiniowane
sci.by
niezdefiniowane
sci.by
Sci.

Inne metody działają podobnie. Zaleca się, aby sprawdzić je samemu. Rozwój i wykorzystanie wyrażeń regularnych, pożądane jest, aby działać w praktyce, kopiowanie kodu nie jest tu zawsze wskazane.

Popularny "regular season"

JavaScript wyrażenie regularne podane do wiadomości poczty elektronicznej nie tylko istnieje wiele bardziej proste opcje. Na przykład, /^[w-.]+@[w-]+.[az]{2,3}$/i. Jednak postać ta uwzględnia nie wszystkie przykłady wykonania rekordu adresu e-mail.

Oczywiście, trzeba zobaczyć doświadczeń kolegów, do analizy, jak ich proponowane przed zaprojektować własną rękę na wyrażeniach regularnych JavaScript. Ale istnieją pewne trudności. Nie powinniśmy zapominać, że wyrażenia regularne JavaScript (przykłady) podczas kopiowania można powielać podstawowych znaków: „”, „/” lub cytaty. Doprowadzi to do błędu, który można szukać długo.

Ważne jest, aby wziąć pod uwagę zwykły „wymiar ludzki”. Po formalnym JavaScript wyrażenie regularne do telefonu, który może być użytkownik (osoba), jest podana na różne sposoby: 123-45-67, (29) 1234567, 80291234567 lub 375291234567. I to wszystko ten sam numer. Pisowni wielu wzorów nie zawsze jest do zaakceptowania, a sztywny utrwalenie zasad pisania numery mogą tworzyć niepotrzebnego dyskomfortu lub ograniczenia. Opcja / ^ d [ d () -] {4,14} d $ / i jest odpowiedni dla większości przypadków sprawdzić swój numer telefonu.

Jeśli chcesz, aby javascript wyrażeń regularnych, tylko cyfry kontrole, nawet taka prosta sprawa wymaga wyjaśnienia. Należy wziąć pod uwagę liczbę całkowitą lub ułamkową, notacja naukowa lub normalna, dodatnia lub ujemna liczba. Można również wziąć pod uwagę istnienie symbol waluty, liczbę cyfr po kropce dziesiętnej i podział całego część numeru na triady.

Wyrażenie / ^ d + $ / i sprawdzić tylko cyfry i /^d+.d+$/i ekspresja pozwala na korzystanie z punktu wskazać część ułamkową liczby.

W JavaScript sprawdzania wyrażenia regularne mogą być używane, aby wskazać format danych wejściowych twardego, co jest ważne, zwłaszcza przy wprowadzaniu profili, dane paszportowe i prawne adresy t. D.

Sprawdź daty – proste do kompleksu

Rozważmy innego wyrażenia regularne JavaScript. Przykłady do tej pory, podobnie jak dla wielu numerów telefonicznych stanowią wybór pomiędzy sztywnością i elastycznością. Data imprezy – jeden z podstawowych danych, które często muszą być podawane. Ale ustalające wkład w określonym formacie: „dd-mm-rrrr«lub»d.m.gg„często prowadzi do niezadowolenia klienta. Przejście z pola wejściowego dni do miesiąca, pełna klasycznych postaci HTML, nie może nastąpić po wprowadzeniu tylko jedną cyfrę, a drugie wejście może być trudne. Na przykład w dziedzinie dnia została wprowadzona 3 a następny numer 2 nie zastępuje pierwszego, i przypisuje do niej 32, które, oczywiście, będzie powodować niedogodności.

Wydajność i wygoda wyrażenia regularne zasadniczo zależą od ogólnej budowy dialog z gościem. W jednym przypadku, aby podać datę wskazane jest korzystanie z jednego pola wprowadzania na formę, w drugim przypadku konieczne jest zapewnienie różnych dziedzinach na dzień, miesiąc i rok. Ale wtedy wszelkie dodatkowe koszty „kod”, aby sprawdzić, rok przestępny, liczbę miesięcy, liczbę dni w nich.

Wyszukiwania i zamiany, wyrażenie regularne pamięć

JavaScript zastąpić (wyrażenia regularne) stosując metodę obiektu String, i pozwala nam znaleźć wartość i natychmiast zmienić. Funkcja ta jest przydatna do poprawiania literówek, edytować zawartość pól formularza i konwersji danych z jednego formatu na inny prezentacji.

var cRegExp = / ([A-Z] +) S ([A-Z] +) S ([A-Z] +) / I; // podczas wyszukiwania są trzy „zmienne”

var sTest = 'Ten artykuł jest dobry!';
var cRegRes = sTest.replace (cRegExp "$ 2 $ 3 $ 1");

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'wyrażenie' + cRegExp + 'dla napisu "' + sTest + '" Turn:' + cRegRes;

wynik:

ekspresyjny / ([az] +) s ([az] +) S ([az] +) / I dla linii "Artykuł ten jest dobrze!" out: artykuł jest dobry, to!

Podczas wykonywania każdej pary nawiasach zapisuje wynik w „zmienna” $ n, gdzie n – liczba par wspornik ($ 1, $ 2, …). W przeciwieństwie do konwencjonalnych, tutaj zmienna numeracja jest 1, a nie 0.

zalecenia ogólne

Wyrażenie regularne upraszcza kod, ale czas się rozwijać to często robi różnicę. Można zacząć od prostych wzorów, a następnie wykonane połączyć w bardziej złożonych wyrażeń. Można korzystać z różnych usług online do testowania wyrażeń regularnych lub specjalnych narzędzi lokalnych.

Najlepszym rozwiązaniem będzie tworzyć własną bibliotekę wyrażeń regularnych oraz własne narzędzia do testowania nowych rozwiązań. Jest to najlepszy sposób, aby skonsolidować doświadczenia i nauczyć się, jak szybko zbudować niezawodną i wygodną konstrukcję.

Korzystanie powtórzenia znaków i łańcuchów, czyli specjalne znaki „*”, „+” i szelki, wskazując liczbę powtórzeń należy kierować się zasadą prostoty i celowości. Ważne jest, aby zdać sobie sprawę, że wyrażenie regularne na początku swojej pracy, aby uzyskać wynik jest całkowicie w mocy silnika stosowanego przez przeglądarkę. Nie wszystkie języki są równoważne JavaScript. Każda przeglądarka może przynieść swoje osobiste preferencje w interpretacji wyrażeń regularnych.

Zgodność nie tylko strony i arkusze stylów jest do wyrażeń regularnych, ma też do zrobienia. Strona używa JavaScript, może być uznany za dobrze funkcjonujący tylko wtedy, gdy z powodzeniem pracował na różnych przeglądarkach.

JavaScript, String i RegExp

Przez prawo pracy na poziomie klienta, który jest w przeglądarce odwiedzającego w JavaScript, wymaga wysokich umiejętności dewelopera. wystarczająco długo masz możliwość debugowania JavaScript kodu przeglądarki środków własnych lub z pomocą rozszerzeń innych producentów, wydawców kodowych, niezależnych programów.

Jednak nie wszystkich przypadkach, debugger może obsłużyć i zapewniają dobre wsparcie dla programisty, szybkiego wykrywania błędów, wykrywanie zatorów. Czasy, kiedy komputer został koncentruje się na obliczeniach, w odległej przeszłości. Teraz, należy zwrócić szczególną uwagę na informacje i liniowe obiekty zaczęły odgrywać znaczącą rolę. Liczba strun stalowych, a ich prawdziwa natura one przejawiać tylko we właściwym czasie i we właściwym miejscu.

Wyrażenia regularne wzmacnianie możliwości linii, ale wymagają szacunku do samego siebie. Debug RegExp w swojej pracy, nawet jeśli jest to możliwe, aby symulować, nie jest zbyt ciekawy pomysł.

Zrozumienie struktury i logiki obiektu RegExp, czyli obiektu String, składni i semantyki języka JavaScript – prawdziwy bezpiecznego kodu, stabilną pracę każdej strony i witryny jako całości.