Wykop.pl Wykop.pl
  • Główna
  • Wykopalisko205
  • Hity
  • Mikroblog
  • Zaloguj się
  • Zarejestruj się
Zaloguj się

Popularne tagi

  • #ciekawostki
  • #informacje
  • #technologia
  • #polska
  • #swiat
  • #motoryzacja
  • #podroze
  • #heheszki
  • #sport

Wykop

  • Ranking
  • Osiągnięcia
  • FAQ
  • O nas
  • Kontakt
  • Reklama
  • Regulamin

4

Numerik walidacja PESEL, NIP i REGON w PHP oraz JavaScript/TypeScript

Zrobiłem Numerik bibliotekę do walidacji i parsowania polskich numerów identyfikacyjnych: PESEL, NIP, REGON, KRS, NRB, VAT-EU, IBAN, dowód osobisty i paszport. Dostępna dla PHP i TypeScript/JS, plus gotowe reguły walidacji do Laravela. Zamiast zwracać proste true/false, Numerik zwraca *dlaczego*...

Slashlab
Slashlab
Slashlab
z
wykop.pl
dodany: 02.08.2026, 20:25:33
  • #
    php
  • #
    javascript
  • #
    typescript
  • #
    laravel
  • #
    walidacja
  • #
    opensource
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zrobiłem Numerik — bibliotekę do walidacji i parsowania polskich numerów identyfikacyjnych: PESEL, NIP, REGON, KRS, NRB, VAT-EU, IBAN, dowód osobisty i paszport. Dostępna dla PHP i TypeScript/JS, plus gotowe reguły walidacji do Laravela.

Zamiast zwracać gołe true/false, Numerik mówi *dlaczego* coś jest nieprawidłowe (zły checksum, niemożliwa data urodzenia, zła długość itd.) i od razu parsuje numer na gotowy obiekt — z PESEL-u wyciągniesz np. datę urodzenia, płeć i wiek jednym wywołaniem.

Zero zależności produkcyjnych, brak wyrażeń regularnych (cała logika na tablicach cyfr, więc bez ryzyka ReDoS), PHP 8.3+, PHPStan poziom 10, pełne testy.

```php

$pesel = Numerik::pesel()->parse('92060512186');

$pesel->getBirthDate()->format('Y-m-d'); // '1992-06-05'

$pesel->getAge(); // liczone od dziś

```

GitHub: https://github.com/sqrcz/numerik

Dokumentacja: https://numerik.slashlab.pl https://numerik-js.slashlab.pl

#programowanie #php #javascript #laravel #opensource

Komentarze (4)

najlepsze

MrDracek
MrDracek
MrDracek
03.08.2026, 13:05:44 via Wykop
  • 0
Ogólnie sam kod jest ok, ale np. w ValueObjects są typowe problemy z ISP i LSP.
Do tego np. w VatEU masz PL hardcoded w getFormatted, mimo że masz oddzielną metodę zwracającą kod kraju.
W ValidationResult pass, fail i failResult są metodami sztuka dla sztuki, robią tylko i wyłącznie jako alias dla konstruktora. Gdyby chociaż musiały żonglować dużą ilością argumentów, to może jeszcze, ale tak to jest po prostu nadmiarowy kod chyba
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych odpowiedziach

pyroxar
pyroxar
09.08.2026, 07:57:52 via Wykop
  • 0
@MrDracek: jaki jest sens nadal cedzić każda linijkę kodu, skoro ai z odpowiednim zestawem reguł, cały projekt buduje w jednym stylu. Tak jak mam swoje wcięcia a pre-comit poprawia mi je do jednego stylu który mamy na repo
  • Odpowiedz
Slashlab
Slashlab
Slashlab
Autor
09.08.2026, 10:11:09 via Wykop
  • 0
@pyroxar: Hej, nie bardzo rozumiem co masz na myśli pisząc "cedzić każdą linijkę kodu".

Jeśli chodzi o to czy warto korzystać z gotowej sprawdzonej i dobrze otestowanej biblioteki niż metody którą AI wrzuci do Twojego kodu... To pewnie jedno i drugie ma tyle samo sensu w zależności od projektu, jego skali i wymagań.

Pozdrawiam.
  • Odpowiedz

Hity

tygodnia

Krzysztof Stanowski stracił prawo jazdy. Pędził 110 km/h w terenie zabudowanym
Krzysztof Stanowski stracił prawo jazdy. Pędził 110 km/h w terenie zabudowanym
3106
Niemal 2 mężczyzn co minutę odbiera sobie życie!
Niemal 2 mężczyzn co minutę odbiera sobie życie!
2519
Sprzeczka na wysokości 3 tys. m Austriacki przewodnik zaatakował Polaka!
Sprzeczka na wysokości 3 tys. m Austriacki przewodnik zaatakował Polaka!
2476
Kolejny...
Kolejny...
2425
Radosław Piesiewicz zatrzymany
Radosław Piesiewicz zatrzymany
2296
Pokaż więcej

Powiązane tagi

  • #webdev
  • #programowanie
  • #mysql
  • #javascript
  • #wydarzeniait
  • #symfony
  • #laravel
  • #wordpress
  • #naukaprogramowania
  • #symfony2
  • #html
  • #python
  • #java
  • #js
  • #pytanie

Wykop © 2005-2026

  • O nas
  • Reklama
  • FAQ
  • Kontakt
  • Regulamin
  • Polityka prywatności i cookies
  • Hity
  • Ranking
  • Osiągnięcia
  • Changelog
  • więcej

RSS

  • Wykopane
  • Wykopalisko
  • Komentowane
  • Ustawienia prywatności

Regulamin

Reklama

Kontakt

O nas

FAQ

Osiągnięcia

Ranking