Walidacja numeru Pesel w JavaScript

Jeśli pracujecie z systemem lub portalem w którym wprowadza się dane osobowe, prawdopodobnie będziecie także mieli do wprowadzenia Pesel.

Pesel jest dość magicznym numerem, który (jeśli programista umie dodać 2 do dwóch) pozwala na spore ułatwienia dla użytkownika. W przypadku rozwiązań WEB’owych nic nie stoi na przeszkodzie, by numer pesel walidować w Javascripcie.

Informacje, jakie możemy z Peselu wyciągnąć ‘ot tak’ to:

  • Data urodzenia
  • Płeć
  • Informacja, czy pesel został wpisany bez błędów.
Jak zatem zdobyć te wszystkie informacje? Poniżej gotowa funkcja JavaScript:

http://jsfiddle.net/artpi/Ltb8h/

Struktura numeru pesel

Struktura numeru pesel jest następująca:
DDDDDDSSSPK
Gdzie:
  • D – data. W powszechnym mniemaniu Są to dwie ostatnie cyfry roku, miesiąc dzień. I jest to prawda, ale nie cała prawda. Wielokrotnie spotykałem się z obawami programistów, iż nie ma jak przypisać numeru pesel osobom urodzonym po 2000 roku.  Nie ma obawy – system nie jest aż tak dziurawy :). W specyfikacji numeru pesel jest tak, że do miesiąca jest dodawana konkretna liczba wskazująca stulecie urodzenia.
    • dla lat 1800-1899 – 80
    • dla lat 2000-2099 – 20
    • dla lat 2100-2199 – 40
    • dla lat 2200-2299 – 60
  • S – cyfry reprezentujące numer serii
  • P – Płeć. Parzysta dla kobiet, nieparzysta dla mężczyzn.
  • K – cyfra kontrolna. O algorytmie tworzenia cyfry kontrolnej napisano wiele, dlatego pozwolę sobie tutaj dokładnych kroków nie przytaczać.

2 thoughts on “Walidacja numeru Pesel w JavaScript

    • Romek says:

      Zawsze jest dobrze zareklamować swoją stronę 🙂
      Ale przy okazji to generator generuje też numery z zakresu nigdy nie nadanych.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s