Walidacja NIP, REGON, PESEL
Zmotywowaliście mnie i uznałem, że warto odrobinkę dopracować walidator PESEL. To jednak było mało. Do TODO załapały sie jeszcze NIP i REGON. Kilkanaście godzin sam na sam z Google, troszkę silnej woli i udało się po raz kolejny :)
Może słabo szukałem, ale nigdzie nie znalazłem gotowej biblioteki do pełnej walidacji tych numerów. Wszędzie tylko jakieś proste implementacje algorytmów, a autorzy uznają, że one wystarczają. Ja tak nie uważam.
Do walidatora numeru PESEL dodałem sugerowane poprawki i jedną dodatkową funkcję - sprawdzanie pełnoletności posiadacza owego numeru.
Cechy klasy nipValidator
Cechy klasy regonValidator
Myślę, że ten kod może być przydatny nie tylko podczas walidacji danych z formularzy, ale też przy generowaniu wszelkiego rodzaju statystyk, czy odpluskwianiu istniejących już baz danych.
Do czego będziecie tego używać, to już Wasza sprawa. Kolejnych notek na ten temat nie będę pisał, ale być może pojawią się jakieś nowsze wersje kodu z kolejnymi walidatorami. Z tego właśnie powodu przebudowie uległa struktura plików.
Pierwsza wersja pakietu to identificationNumbers 1.0
Pozdrawiam Was i dziękuję za motywujące komentarze :)
P.S
Dziękuję autorowi http://chemeng.p.lodz.pl/zylla/ut/, z którego strony korzystałem przy opracowywaniu kodu.
Może słabo szukałem, ale nigdzie nie znalazłem gotowej biblioteki do pełnej walidacji tych numerów. Wszędzie tylko jakieś proste implementacje algorytmów, a autorzy uznają, że one wystarczają. Ja tak nie uważam.
Do walidatora numeru PESEL dodałem sugerowane poprawki i jedną dodatkową funkcję - sprawdzanie pełnoletności posiadacza owego numeru.
Cechy klasy nipValidator
- Waliduje numery w wersji zwykłej, jak również z prefiksem kodu kraju (tzw. wersja europejska)
- Pozwala uzyskać nazwę Urzędu Skarbowego, który wydał NIP
- Pozwala określić stopień walidacji obejmujący to, czy Urzęd Skarbowy istnieje oraz poprawność kodu kraju
Cechy klasy regonValidator
- Sprawdza wszystkie postaci numeru REGON, składające się z 7, 9, lub 14 cyfr.
- Jest odporna na czeskie błędy w algorytmie dla REGON 14 i pozwala na sprawdzenie, czy mimo niepoprawności, numer przeszedł walidację na REGON 14
- Odporna na błąd, w którym modulo 11 sumy kontrolnej wynosi 10 - używa cyfry 0
Myślę, że ten kod może być przydatny nie tylko podczas walidacji danych z formularzy, ale też przy generowaniu wszelkiego rodzaju statystyk, czy odpluskwianiu istniejących już baz danych.
Do czego będziecie tego używać, to już Wasza sprawa. Kolejnych notek na ten temat nie będę pisał, ale być może pojawią się jakieś nowsze wersje kodu z kolejnymi walidatorami. Z tego właśnie powodu przebudowie uległa struktura plików.
Pierwsza wersja pakietu to identificationNumbers 1.0
Pozdrawiam Was i dziękuję za motywujące komentarze :)
P.S
Dziękuję autorowi http://chemeng.p.lodz.pl/zylla/ut/, z którego strony korzystałem przy opracowywaniu kodu.


Pozdrawiam.
Tam powinna być zwykła właściwość, ew. potraktowana setterem/getterem (najlepiej magicznym, nie dodatkową funkcją - tzn żeby user widział i używał tylko: $validator->check_costam = true a nie: $validator->set_check_costam (true)), a na pewno nie const...
generalnie ok i fajnie ze na lgpl :)