@motorniczy: imho dobry programista to nie ten ktory zna na pamiec skladnie kazdego polecenia, ale ten ktory wie jak je uzywac lub jak podejsc do nowego problemu. Takie cos jak walidator maila piszesz raz na jakis czas i zapominasz o tym, uzywajac gotowego liba. A moj brak pewnosci odnosil sie do calego artykulu (urlowy tez jest zly, a ten od hasel narzuca dziwne, sztuczne ograniczenia). No ale co ja tam wiem...
Wyrażenia regularne są fajne, ale rzadko są jedynym a jeszcze rzadziej najbardziej optymalnym wyjściem. Ja tam jestem wyznawcą tej słynnej anegdotki która szła mniej więcej tak:
Niektórzy programiści kiedy zostają skonfrontowani z problemem myślą sobie, "Wiem rozwiąże to za pomocą wyrażeń regularnych". I w tym momencie mają już dwa problemy...
Można tam zauważyć, że HTML (który jest językiem nieregularnym), nie może być w pełni przetworzony przez silnik wyrażeń regularnych, bo one obsługują języki regularne.
Tu uwaga: istnieją implementacje (np. perlowa czy znana z Ruby'ego implementacja Oniguruma) silników wyrażeń regularnych, które są kompletne w sensie Turinga (mają np. kontrolę zachłanności dopasowywania, grupowanie z wyłapywaniem lub bez i odwołania zwrotne) – można w nich programować po
@klapklap: Dokładnie, za każdym razem, gdy ktoś przetwarza dokument HTML wyrażeniami regularnymi "przeklęte dziecię płacze krwią dziewic, a rosyjscy hakerzy zdobywają jego laptopa":
Ciekawostka - Tuts+ to portal na którym parę miesięcy temu wyciekła cała baza danych użytkowników, haseł i danych kart kredytowych. Przyznali się po fakcie, że dane te nie były szyfrowane i jedyne co poszkodowani dostali w zamian to marne "przepraszamy" i chyba konto premium na jakiś czas. Wtopa była na niesamowitą skalę, tym bardziej, że z tym serwisem powiązane są też inne usługi Envato, między innymi banki użytkowe - grafiki, szablonów stron,
Wygląda łagodnie, chociaż pisanie tym tonem, że wyciekły "tylko" nazwy użytkowników, hasła i adresy email jest niestosowne, adresy te to dane logowania do PP. No i dalej zapewnienie, że wyciekły tylko dane Tuts+ Premium zapominając, że inne usługi Envato są powiązane. Mam nadzieję, że nikt nie stosuje takich samych haseł, tym bardziej do PP, ale po tej akcji nieudane próby logowania to codzienność.
Skoro już mowa o feature'ach oferowanych przez różnych usługodawców...
gmail pozwala na to aby swój adres rozdzielac dowolnie kropkami. Dla przykładu
jankowalski@gmail.com jest tożsame z jan.kowalski@gmail.com a nawet z j.a.n.k.o.w.a.k.s.k.i@gmail.com
Bywa to przydatne, gdy chcemy np. zarejestrowac drugie konto w jakimś serwisie, ale nie chcemy zakładac dodatkowego e-maila, wystarczy dodac jakąś kropkę i zazwyczaj przechodzi :)
Inny globalna właściwośc adresów e-mail, jest taka, że możemy go
@happyt: gmail ma jeszcze jeden fajny ficzer. twojekonto+spam@gmail.com pozwala robic filtry na poziomie adresu email. Oczywiscie zamiast spam mozesz dac cokolwiek. Dzieki temu latwo np. wykryc gdzie wyciekl Twoj adres jesli zaczniesz dostawac spam.
Komentarze (84)
najlepsze
@kolakao: Ważne że działają i to jak! Spróbuj je zastąpić kodem w dowolnym języku. Z jedego prostego wyrażenia zrobi ci nagle sto linii kodu.
Chyba sporo wiesz, serwer testowy przecież był wybitnie zabezpieczony :)
nie każdy poprawny email będzie pasował do podanego tam wyrażenia
nie każdy poprawny url będzie pasował do wyrażenia od urli
nr 3 to nie wykrywacz liczb szesnastkowych tylko wykrywacz kolorów htmlowych
Z emailami/urlami to jest prawdziwa rzeźnia. Konia z rzędem temu, kto napisze regexa zgodnego ze wszystkimi standardami :)
http://en.wikipedia.org/wiki/Email_address#Examples
http://ex-parrot.com/~pdw/Mail-RFC822-Address.html
Niektórzy programiści kiedy zostają skonfrontowani z problemem myślą sobie, "Wiem rozwiąże to za pomocą wyrażeń regularnych". I w tym momencie mają już dwa problemy...
Można tam zauważyć, że HTML (który jest językiem nieregularnym), nie może być w pełni przetworzony przez silnik wyrażeń regularnych, bo one obsługują języki regularne.
Tu uwaga: istnieją implementacje (np. perlowa czy znana z Ruby'ego implementacja Oniguruma) silników wyrażeń regularnych, które są kompletne w sensie Turinga (mają np. kontrolę zachłanności dopasowywania, grupowanie z wyłapywaniem lub bez i odwołania zwrotne) – można w nich programować po
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags?page=1&tab=votes#tab-top
Hasło powinno przyjąć każdy drukowalny znak.
Maila radzę sprawdzać zgodnie ze specyfikacją: http://code.iamcal.com/php/rfc822/
Wygląda łagodnie, chociaż pisanie tym tonem, że wyciekły "tylko" nazwy użytkowników, hasła i adresy email jest niestosowne, adresy te to dane logowania do PP. No i dalej zapewnienie, że wyciekły tylko dane Tuts+ Premium zapominając, że inne usługi Envato są powiązane. Mam nadzieję, że nikt nie stosuje takich samych haseł, tym bardziej do PP, ale po tej akcji nieudane próby logowania to codzienność.
W komentarzach jest mała
gmail pozwala na to aby swój adres rozdzielac dowolnie kropkami. Dla przykładu
jankowalski@gmail.com jest tożsame z jan.kowalski@gmail.com a nawet z j.a.n.k.o.w.a.k.s.k.i@gmail.com
Bywa to przydatne, gdy chcemy np. zarejestrowac drugie konto w jakimś serwisie, ale nie chcemy zakładac dodatkowego e-maila, wystarczy dodac jakąś kropkę i zazwyczaj przechodzi :)
Inny globalna właściwośc adresów e-mail, jest taka, że możemy go
Jestem klinicznym przypadkiem humanisty, ale wyrażenia regularne kilka razy uratowały mi życie.