Bardzo prosta klasa w TypeScript do określania poprawności numeru PESEL — Powszechnego Elektronicznego Systemu Ewidencji Ludności używanego w Polsce od 1979. Ta klasa nie ma żadnych zależności zewnętrznych.
Numer PESEL obsługuje daty urodzin od 1800-01-01
do 2299-12-31
(YYYY-MM-DD
), zawiera numer seryjny, informację o płci urodzonej osoby oraz sumę kontrolną.
🇬🇧 See English readme file.
import {Pesel} from './Pesel.ts';
let language = 'pl'; // obsługiwane języki: 'pl' (polski) i 'en' (angielski)
// poprawny PESEL
let pesel = '29511300014';
const p1 = new Pesel.Check(pesel, language);
console.log(p1.valid()); // true
console.log(p1.verdict()); // 'numer PESEL jest poprawny ✅'
console.log(p1.info()); // 'To jest mężczyzna urodzony w niedzielę 13 listopada 2129 r.'
console.log(p1.date()); // '2129-11-13'
console.log(p1.error()); // null
// niepoprawny PESEL
pesel = '29513300014';
const p2 = new Pesel.Check(pesel, language);
console.log(p2.valid()); // true
console.log(p2.verdict()); // 'numer PESEL nie jest poprawny ⛔'
console.log(p2.info()); // null
console.log(p2.date()); // null
console.log(p2.error()); // 'niepoprawna data (2129-11-33)'
Można również:
console.log(p1.json()); // {string w formacie JSON ze wszystkimi właściwościami}
p1.print(); // drukuje wszystkie właściwości do konsoli
Klasa Pesel posiada następujące publiczne metody:
date()
- string: data z numeru PESEL w formacie 'YYYY-MM-DD' lub null, jeśli PESEL nieprawidłowy,error()
- string: wyjaśnienie niepoprawności numeru lub null, jeśli PESEL prawidłowy,verdict()
- string: czytelna informacja, czy PESEL jest poprawny,info()
- string: informacja o osobie posiadającej taki PESEL,json()
- string: JSON ze wszystkimi właściwościami lub null, jeśli PESEL nieprawidłowy,print()
- void: drukuje wszystkie właściwości do konsoli,valid()
- boolean: czy PESEL jest poprawny.
Klasa PeselProperties ma następujące właściwości:
icon
- string: ✅ lub ⛔,isValid
- boolean: czy PESEL jest prawidłowy,lang
- string: dwuliterowy kod języka,value
- string: przycięty wprowadzony numer,verdict
- string: informacja, czy PESEL jest prawidłowy.
error
- string: przyczyna błędu
century
- integer: jedna lub dwie ostatnie cyfry z roku,checksum
- integer: suma kontrolna (ostatnia cyfra),dateLong
- string: urodziny w długim formacie,dateObj
- obiekt klasyDate
z datą urodzin,date
- string: urodziny w formacieYYYY-MM-DD
,dayInt
- integer: dzień z daty urodzin,day
- string: dwuznakowy dzień z daty urodzin,dowName
- string: dzień tygodnia z daty urodzin,dow
- integer: dzień tygodnia z daty urodzin (0
= niedziela),icon
- string: ✅ lub ⛔w zależności od poprawności PESEL-u,info
- string: szczegółowa informacja o osobie z takim numerem PESEL,monthInt
- integer: miesiąc z daty urodzin,monthName
- string: miesiąc z daty urodzin,month
- string: miesiąc z daty urodzin,serial
- string: numer seryjny (z informacją o płci),sexName
- string: płeć,sex
- string: płeć (male
/female
),yearShort
- string: dwie ostatnie cyfry z roku,year
- integer: rok z daty urodzin.
PeselProperties = {
icon: '✅',
value: '29511300014',
lang: 'pl',
isValid: true,
verdict: 'numer PESEL jest poprawny',
yearShort: '29',
century: 21,
year: 2129,
month: '11',
monthInt: 11,
monthName: 'listopad',
day: '13',
dayInt: 13,
date: '2129-11-13',
dateLong: '13 listopada 2129',
dateObj: '2129-11-13T00:00:00.000Z',
dow: 0,
dowName: 'niedziela',
serial: '0001',
sex: 'male',
sexName: 'mężczyzna',
checksum: 4,
info: 'To jest mężczyzna urodzony w niedzielę 13 listopada 2129 r.'
}
PeselProperties = {
icon: '⛔',
isValid: false,
lang: 'pl',
error: '"niepoprawna data (2129-11-33)',
value: '29513300014',
verdict: '"numer PESEL nie jest poprawny'
}