Description
Świadomie stosuj wzorce – to ułatwi Ci pracę!Wyrażenia regularne w JavaScripcie, podobnie ja we wszystkich innych językach programowania, wymyślono po to, żeby ułatwić programistom pracę. Są one niezastąpione chociażby przy walidacji informacji wprowadzanych przez użytkowników, przeszukiwaniu zbiorów danych czy automatyzacji wielu zadań. Niestety, duża część programistów – wcale nie tylko początkujących – omija je szerokim łukiem w przekonaniu, że zbyt trudno je zrozumieć, a pomyłka może drogo kosztować. Z tej książki dowiesz się, jak należy czytać i samodzielnie konstruować oraz testować wyrażenia regularne, żeby służyły założonym przez Ciebie celom. Szybko przekonasz się, jak wygodne jest to rozwiązanie.Niezależnie od tego, czy jesteś nowicjuszem, czy programujesz od lat, znajdziesz tu coś dla siebie. Poznasz metody i zasady pracy z regexami, nauczysz się testować wzorce i dopasowywać je do swoich zamierzeń. Dogłębna analiza składni wyrażeń regularnych oraz ich zastosowania została tu poszerzona o omówienie potencjalnych problemów i częstych błędów popełnianych przez osoby stawiające pierwsze kroki w tym obszarze. Przeczytaj, wypróbuj wyrażenia regularne i zacznij używać ich na co dzień, a Twoja praca w JavaScripcie stanie się znacznie bardziej efektywna!Na początek nieco teoriiSkładnia wyrażeń regularnych w JavaScriptPraca z wyrażeniami regularnymi w JavaScriptPrzykładowe wyrażenia regularne z omówieniemPrzyszłość wyrażeń regularnych w JavaScriptRegexy – używaj ich regularnie!Spis treści:Rozdział 1. Na początek nieco teorii (7)Czym są wyrażenia regularne? (7)Dla kogo przeznaczona jest książka (8)Nie ucz się regexp na pamięć! (9)Kilka słów o Unicode (10)Unicode to nie UTF! (11)Kodowanie znaków UTF-8 (12)Kodowanie znaków UTF-16 (13)Kodowanie znaków i BOM (15)Rozdział 2. Składnia wyrażeń regularnych w JavaScripcie (17)Dopasowanie dosłowne (18)Znaki specjalne i sekwencja ucieczki (20)Dopasowanie znaków niedrukowanych i białych (23)Klasy znaków (25)Zakresy znaków w klasach (28)Predefiniowane znaki i zakresy znaków (31)Dopasowanie cyfry (31)Dopasowanie „wyrazu” (32)Problem sekwencji negujących wewnątrz klas znaków (34)Białe znaki (36)Dopasowanie znaku NULL (37)Analiza granicy wyrazu (38)Zestawienie predefiniowanych sekwencji znakowych (40)Grupy i odwołania wsteczne (41)Grupowanie z wykorzystaniem alternatywy (43)Grupy nieprzechwytujące (46)Kwantyfikatory – podstawy (48)Kwantyfikatory skrótowe (51)Kwantyfikatory zachłanne i niezachłanne (53)Wyprzedzenia pozytywne i negatywne (56)Granice dopasowania początku i końca (58)Flagi we wzorcach wyrażeń regularnych (60)Flaga case insensitive (i) (61)Flaga dopasowania globalnego (g) (64)Flaga multiline (m) (67)Flaga unicode (u) (68)Flaga unicode (u) – poprawne rozpoznawanie wszystkich znaków Unicode (69)Flaga sticky (y) (73)Bezpieczne stosowanie sekwencji ucieczki (76)Granice dopasowania (77)Kwantyfikatory (78)Symbole specjalne wewnątrz klasy znaków (79)Inne symbole specjalne (81)Rozdział 3. Praca z wyrażeniami regularnymi w JavaScripcie (83)Tworzenie wyrażeń regularnych (83)Sekwencje ucieczki w konstruktorze RegExp (84)Definiowanie flag podczas tworzenia wzorców (85)Tworzenie wzorców z innych wzorców (86)Komentowanie wzorców regexp (88)Omówienie właściwości obiektu RegExp (90)Obsługa flag (90)Znakowa reprezentacja wzorca regexp (91)Właściwości ostatnio użytego obiektu RegExp (91)Metoda RegExp.prototype.test (94)Obsługa flag case insensitive i unicode (94)Problematyczne włączanie flag global i sticky (95)Metoda RegExp.prototype.exec (97)Aktywna flaga global lub sticky (98)Metoda exec() i właściwość lastIndex (99)Różnica między index i lastIndex (101)Wzorzec zawierający grupy przechwytujące i warunkowe (102)Użycie metody exec() w pętli (104)Metoda String.prototype.search (106)Metoda search() w instrukcjach warunkowych (107)Kwantyfikator dowolnej liczby powtórzeń (108)Flagi global i sticky w metodzie search() (109)Metoda String.prototype.match (110)Współpraca z flagą global (110)Aktywacja flagi sticky (111)Analiza dopasowanych grup przechwytujących (113)Metoda String.prototype.replace (114)Dostęp do właściwości ostatniego obiektu RegExp (114)Nowy ciąg jako funkcja zwrotna (116)Argumenty funkcji zwrotnej i ich wykorzystanie (117)Grupy przechwytujące jako dopasowania alternatywne (119)Wyrażenie regularne z flagą sticky (120)Metoda String.prototype.split (121)Wyrażenie regularne jako separator (121)Przechwycenie separatora dzielącego ciąg znakowy (122)Analiza ciągów znakowych bez użycia wyrażeń regularnych (124)Metoda startsWith (125)Metoda endsWith (126)Metoda includes (126)Metoda indexOf() (127)Metoda lastIndexOf (128)Praca ze znakami Unicode (129)Tworzenie ciągów znakowych Unicode (130)Metoda charCodeAt (131)Metoda codePointAt (132)Metody fromCharCode i fromCodePoint (133)Rozdział 4. Przykładowe wyrażenia regularne z omówieniem (135)Usuwanie białych znaków z początku i końca ciągu (135)Sprawdzenie, czy ciąg zawiera wyłącznie znaki alfanumeryczne (136)Walidacja liczby całkowitej w systemie dziesiętnym (138)Walidacja liczby z częścią ułamkową w systemie dziesiętnym (141)Walidacja liczby w systemie wykładniczym (142)Liczby w systemie dwójkowym i szesnastkowym (145)Weryfikacja kolorów w zapisie HEX, RGB i HSL (148)Sprawdzenie, czy liczba jest podzielna przez 2, 4 lub 5 (151)Czy liczba zawiera się we wskazanym zakresie (153)Analiza kodu pocztowego (155)Analiza numeru telefonu (158)Usuwanie przedrostków z ciągu zawierającego imię i nazwisko (160)Ciąg złożony z unikalnych znaków (161)Zamiana polskich znaków diakrytycznych na litery łacińskie (163)Usuwanie znaczników HTML (164)Zastępowanie znaczników HTML (165)Cenzura, czyli modyfikacja wskazanych wyrazów zabronionych (167)Wykrywanie powtórzeń zlokalizowanych w określonej odległości znakowej (168)Usuwanie komentarzy w kodzie aplikacji (171)Analiza plików INI według określonych reguł (173)Analiza poprawnego zapisu daty (176)Analiza poprawności czasu w różnych formatach (179)Weryfikacja poprawności hasła tworzonego podczas rejestracji (180)Analiza adresu URL i podział na elementy składowe (182)Walidacja numeru karty kredytowej z algorytmem Luhna (185)Weryfikacja poprawności zapisu liczb rzymskich (188)Analiza nazw i rozszerzeń plików (193)Walidacja adresu e-mail (195)Walidacja poprawności adresu IP (ipv4) (199)Walidacja poprawności MAC Address (201)Weryfikacja numeru PESEL (202)Weryfikacja numeru dowodu osobistego (204)Weryfikacja numeru NIP (206)Weryfikacja numeru REGON (208)Weryfikacja numeru ISBN (210)Weryfikacja europejskiego numeru płatnika VAT (214)Walidacja imienia i nazwiska, czyli kiedy lepiej nie stosować regexp (216)Rozdział 5. Przyszłość wyrażeń regularnych w JavaScripcie (219)Jak wygląda proces tworzenia standardów ECMAScript (219)Nowa flaga dotAll (220)Nazwane grupy przechwytujące (222)Metoda match i exec (222)Zmodyfikowana metoda String.prototype.replace (224)Odwołania wsteczne wewnątrz wyrażenia regularnego (224)Cofnięcia pozytywne i negatywne (225)Grupy znakowe Unicode (227)Słowo końcowe (229)Skorowidz (231)
środek flokujący do basenu, rura do spalin gazowych, kolor kawa z mlekiem jasny, suszarka na pranie własnej roboty, donica zewnętrzna wysoka, hustawka do sufitu, kable do prądu, latarenki na taras, zawiasy rodzaje, wsporniki pod parapet, regips 6mm, płyta ogniochronna, ukośnica 305 mm z posuwem, kontakt biały