PESEL
Waliduje i parsuje powszechny numer ewidencyjny PESEL. Wyodrębnia datę urodzenia, płeć, stulecie, wiek i numer porządkowy bezpośrednio z numeru.
Numerik to biblioteka PHP 8.3+ bez zewnętrznych zależności produkcyjnych. Dzięki niej dowiesz się nie tylko czy podany numer jest błędny, ale przede wszystkim dlaczego.
PESEL
Waliduje i parsuje powszechny numer ewidencyjny PESEL. Wyodrębnia datę urodzenia, płeć, stulecie, wiek i numer porządkowy bezpośrednio z numeru.
NIP
Waliduje numery identyfikacji podatkowej osób fizycznych i prawnych. Zwraca kod urzędu skarbowego i sformatowaną postać wyświetlaną.
REGON
Obsługuje zarówno 9-cyfrowy REGON podmiotu, jak i 14-cyfrowy REGON jednostki lokalnej — z pełną walidacją sum kontrolnych dla obu wariantów.
KRS
Waliduje numery rejestru sądowego z automatyczną normalizacją zer wiodących. Dokumentuje ograniczenie weryfikacji offline kontra online.
NRB
Waliduje polskie numery rachunków bankowych algorytmem MOD-97. Obsługuje formaty surowy, ze spacjami i IBAN (z prefiksem PL). Zwraca numer rozliczeniowy, kod banku i numer rachunku.
VAT-EU
Waliduje unijne numery VAT polskich podatników (PL + NIP). Usuwa prefiks kraju i stosuje algorytm MOD-11 dla NIP. Zwraca numer NIP i sformatowaną postać wyświetlaną.
IBAN
Waliduje polskie numery IBAN (PL + NRB). Wymaga prefiksu kraju i stosuje MOD-97. Zwraca NRB, numer rozliczeniowy, kod banku i numer rachunku.
Laravel
Gotowe reguły walidacji Laravel dla wszystkich identyfikatorów przez slashlab/numerik-laravel. Obsługuje składnię klasową i łańcuchową z kontrolą trybu ścisłego dla PESEL.
use SlashLab\Numerik\Numerik;
// Proste sprawdzenie boolowskieNumerik::pesel()->isValid('92060512186'); // trueNumerik::nip()->isValid('5260250274'); // true
// Bogaty wynik ze szczegółami błędu$result = Numerik::pesel()->validate('92060512185'); // zła cyfra kontrolna$result->isFailed(); // true$result->getFirstFailure()->reason; // ValidationFailureReason::InvalidChecksum
// Parsowanie do obiektu wartości$pesel = Numerik::pesel()->parse('92060512186');$pesel->getBirthDate()->format('Y-m-d'); // '1992-06-05'$pesel->getGender(); // Gender::Female$pesel->getAge(); // obliczony od dzisiaj$pesel->isAdult(); // truephp: ^8.3.readonly.declare(strict_types=1) w każdym pliku.ValidationFailureReason obejmuje błędy formatu, sumy kontrolnej, zakodowanej daty i semantyczne.isValid(), validate() i parse() z jasnymi kontraktami.