Walidacja polskich numerów identyfikacyjnych

Algorytmy i metody sprawdzania poprawności PESEL, NIP, REGON i innych

8 min czytania
Styczeń 2024

Wprowadzenie do walidacji

Walidacja numerów identyfikacyjnych to kluczowy element każdej aplikacji obsługującej polskie dane. Poprawna implementacja algorytmów walidacji zapewnia integralność danych i zmniejsza ryzyko błędów.

Dlaczego walidacja jest ważna?

Walidacja numerów nie tylko sprawdza poprawność danych, ale też pomaga wykryć błędy wprowadzania i zwiększa zaufanie użytkowników do aplikacji.

Walidacja numeru PESEL

PESEL składa się z 11 cyfr, gdzie ostatnia cyfra to suma kontrolna obliczana według specjalnego algorytmu.

Algorytm walidacji PESEL

  1. 1. Pomnóż każdą cyfrę przez odpowiedni współczynnik: 1,3,7,9,1,3,7,9,1,3
  2. 2. Zsumuj wszystkie wyniki
  3. 3. Weź ostatnią cyfrę sumy
  4. 4. Odejmij od 10 (jeśli wynik to 10, użyj 0)
  5. 5. Porównaj z 11. cyfrą PESEL

Przykład kodu JavaScript

function validatePESEL(pesel) {
  if (pesel.length !== 11) return false;
  
  const weights = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
  let sum = 0;
  
  for (let i = 0; i < 10; i++) {
    sum += parseInt(pesel[i]) * weights[i];
  }
  
  const checkDigit = (10 - (sum % 10)) % 10;
  return checkDigit === parseInt(pesel[10]);
}

Walidacja numeru NIP

NIP to 10-cyfrowy numer z cyfrą kontrolną jako ostatnią cyfrą.

Algorytm walidacji NIP

  1. 1. Pomnóż cyfry 1-9 przez współczynniki: 6,5,7,2,3,4,5,6,7
  2. 2. Zsumuj wyniki
  3. 3. Weź resztę z dzielenia przez 11
  4. 4. Porównaj z 10. cyfrą

Przykład kodu JavaScript

function validateNIP(nip) {
  nip = nip.replace(/[-\s]/g, '');
  if (nip.length !== 10) return false;
  
  const weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];
  let sum = 0;
  
  for (let i = 0; i < 9; i++) {
    sum += parseInt(nip[i]) * weights[i];
  }
  
  const checkDigit = sum % 11;
  return checkDigit === parseInt(nip[9]);
}

Reklama

Reklama

Reklama

Wymaga zgody na pliki cookie

Walidacja numeru REGON

REGON może mieć 9 lub 14 cyfr. Oba formaty mają swoje algorytmy walidacji.

Algorytm dla REGON 9-cyfrowego

  1. 1. Pomnóż cyfry 1-8 przez współczynniki: 8,9,2,3,4,5,6,7
  2. 2. Zsumuj wyniki
  3. 3. Weź resztę z dzielenia przez 11
  4. 4. Jeśli reszta to 10, cyfra kontrolna to 0

Walidacja numeru IBAN

Polski IBAN składa się z 28 znaków: "PL" + 2 cyfry kontrolne + 24 cyfry numeru konta.

Algorytm walidacji IBAN

  1. 1. Przenieś pierwsze 4 znaki na koniec
  2. 2. Zamień litery na cyfry (A=10, B=11, ..., Z=35)
  3. 3. Oblicz resztę z dzielenia przez 97
  4. 4. Jeśli reszta to 1, IBAN jest poprawny

Dobre praktyki walidacji

Walidacja dwustronna

Zawsze implementuj walidację zarówno w przeglądarce (dla UX) jak i na serwerze (dla bezpieczeństwa).

Jasne komunikaty

Przekazuj użytkownikom jasne informacje o tym, co jest nie tak z wprowadzonym numerem.

Wskazówka

Użyj naszych generatorów do tworzenia poprawnych numerów testowych i sprawdzania, czy Twoja walidacja działa prawidłowo.

Podsumowanie

Poprawna walidacja numerów identyfikacyjnych to podstawa niezawodnych aplikacji. Implementując opisane algorytmy, zapewnisz wysoką jakość danych i lepsze doświadczenie użytkowników.