Nowa książka – wyrażenia regularne w JavaScript!

Chciałbym pozwolić sobie na małą autopromocję mojej książki opisującej kompleksowo problematykę stosowania wyrażeń regularnych w języku JavaScript, która jest dostępna w oficjalnej sprzedaży od dzisiaj (15 czerwca).

Od dzisiaj, tj. od 15 czerwca 2018r. dostępna jest w sprzedaży moja autorska książka poświęcona regexp, np. w księgarni Helion pod tym linkiem.

W książce starałem się zawrzeć najważniejsze wg mnie informacje umożliwiające swobodne poruszanie się zarówno w składni wyrażeń regularnych jak i w różnych metodach JavaScript obsługującym regexp. Moim zdaniem książka może być ciekawą pozycją zarówno dla początkujących programistów JS jak i dla osób z nieco większym doświadczeniem. Nie omawiam w niej jednak podstaw samego języka JavaScript (za wyjątkiem omówienia paru metod w rozdziale 3). Aby móc zrozumieć prezentowane w książce przykłady konieczna jest więc choćby podstawowa wiedza z JavaScript.

Pokrótce opiszę co jest zawarte w poszczególnych rozdziałach książki.

Rozdział 1 – informacje podstawowe

W rozdziale pierwszym starałem się w miarę prosty sposób omówić czym w ogóle są wyrażenia regularne, dlaczego są tak fajne 🙂 i czego należy się wystrzegać w czasie nauki regexp.

Ponad to omawiam również zagadnienia związane ze standardem Unicode i kodowaniami znaków jak UTF-8, UTF-16 co pozwoli lepiej zrozumieć sposób obróbki ciągów znakowych przez wzorce regexp.

Rozdział 2 – Składnia regexp w JS

W rozdziale drugim wkraczamy w świat wyrażeń regularnych, gdzie staram się od podstaw opisać wszystkie elementy regexp dostępne w JavaScript w dniu pisania książki (stan na koniec roku 2017).

Część elementów składni regexp znajduje się w rozdziale 5, traktującym o przyszłości regexp w JS. Gdy pisałem ten rozdział to poruszane tam tematy nie były jeszcze w standardzie ES, choć można je było testować m.in. w przeglądarce Chrome (po włączeniu odpowiednich ustawień). Obecnie najnowsza przeglądarka Chrome obsługuje już te elementy, także w zasadzie rozdział drugi i piąty można traktować jako jeden, ogólnie opisujący składnię regexp (szczerze mówiąc nie spodziewałem się, że proces wydawniczy będzie trwać tak długo dlatego zdecydowałem się wyrzucić te elementy do osobnego rozdziału).

Opisując każdy element składni regexp podaję również różne przykłady co pozwala czytelnikowi łatwo samodzielnie testować wszystkie zagadnienia np. w konsoli przeglądarki (do czego gorąco zachęcam, aby od początku pracy z książką ćwiczyć tworzenie wzorców regexp).

Rozdział 3 – Praca w regexp w JS

Po omówieniu składni wyrażeń regularnych w rozdziale trzecim analizujemy różne metody ze String.prototype oraz RegExp.prototype współpracujące ze wzorcami regexp.

W rozdziale tym starałem się opisać zarówno podstawowe wykorzystanie tych metod jak również dokonałem nieco bardziej złożonej analizy różnych przypadków granicznych, które nie zawsze mogą dawać oczekiwane rezultaty.

Omówiłem również kilka metod związanych z analizą ciągów znakowych lecz nie wykorzystujących w tym celu regexp. Zrobiłem to po to, aby wyraźnie zaznaczyć, że regexp są bardzo przydatne, ale nie należy ich stosować na siłę i w wielu sytuacjach w zupełności wystarczą „standardowe” metody String.prototype. Przyznaję bez bicia, że jestem wielkim fanem i pasjonatem regexp, ale nie jestem fanatykiem ładującym regexp do sprawdzenia długości ciągu znakowego 🙂

Rozdział 4 – gotowe przykłady

Przyznam, że ten rozdział sprawił mi najwięcej trudności jednakże nie pod względem samego opisania przykładów ale pod względem ich wyboru. W internecie można znaleźć wiele różnych przypadków zastosowania regexp, ale wiele z nich bazuje na alfabecie amerykańskim, gdzie występują tylko litery łacińskie co nie zawsze może być wprost przenoszone do realiów polskich, gdzie dysponujemy wieloma znakami diaktrycznymi jak ą, ę itp.

Ostatecznie zdecydowałem się, że w rozdziale tym postaram się przede wszystkim zrobić takie przykłady, na których można będzie wyraźnie omówić wiele różnych niuansów związanych z regexp. Część przykładów nie będzie pewnie nigdy wykorzystana w praktyce, jak chociażby sprawdzenie, czy liczba jest podzielna przez 4, ale przykłady te pozwalają w prosty sposób omówić różne ciekawe zagadnienia regexp.

Znajdziesz jednak również przykłady jak najbardziej przydatne w codziennej pracy jak walidacja reguł dla hasła przy rejestracji itp. Ponad to zawarłem również kilka przykładów walidacji danych osobowych i firmowych (nip, pesel, dowód osobisty) oraz danych takich jak ISBN, numery kart kredytowych itp. W przykładach tych wyraźnie chciałem pokazać, że nie zawsze warto dążyć do budowy bardzo rozbudowanych wzorców i warto spróbować połączyć proste i klarowne regexp z odpowiednią logiką np. do walidacji sum kontrolnych itp.

 

Na moim blogu poruszałem już kilka razy tematykę regexp i w książce starałem się pisać w podobnym tonie, także zachęcam przed zakupem do przejrzenia kilku moich postów aby przekonać się, czy odpowiada Ci moja forma wypowiedzi i sposób przekazywania informacji.

Nie pozostaje mi zatem nic innego jak tylko zachęcić Cię do zakupu wersji drukowanej lub elektronicznej i poznania pięknego świata regexp w JS 🙂

 

  • Fajnie, że akurat o RegExp bo to tematyka stosunkowo rzadko poruszana. Zwłaszcza dogłębnie. Na pewno prędzej czy później wyląduje na mojej półce 🙂

    • To fakt, że o regexp nie ma wielu publikacji książkowych ale jednak jak poszukać to trochę się znajdzie (choć nie wszystkie PL). Ja długo zastanawiałem się czy skupiać się wyłącznie na JS czy może jeszcze PHP i Java, ale ostatecznie miłość do JS zwyciężyła i postanowiłem wydać coś może dla mniejszej publiczności ale możliwie jak najlepiej dopasowanego do programisty JS (choć inni programiści też mogą częściowo z książki skorzystać).
      Może kiedyś nawet dorobię się recenzji jak „Zawód Programista” 🙂

  • Mikulew

    Z chęcią kupię! Można kupić prywatnie z Twoim autografem?

    • Cześć, ja jako autor otrzymuję tylko kilka egzemplarzy ale nie mogę ich sprzedawać. Planuję też uruchomienie małej platformy do interaktywnej nauki regexp stanowiącej jakby uzupełnienie do książki, gdzie udzielałbym również jakiegoś wsparcia online, ale niestety chwilę to potrwa bo tak nieco z doskoku do tego wracam, a roboty innej trochę jest… (myślę też nad udemy ale waham się czy iść w tych tematach po polsku czy jednak po angielsku… zobaczymy)

      Ale zobaczymy, jeśli jakaś tam w miarę sensowna sprzedaż i zainteresowanie będę to zmobilizuję siły do takiej interaktywnej platformy 🙂 Na razie w razie czego chętnie służę wsparciem w nauce na blogu, email lub na forum pasja-informatyki, gdzie również staram się trochę udzielać wsparciem w zakresie JS.