ts-jmbg
v1.0.3
Published
JMBG tools in typescript
Downloads
94
Maintainers
Readme
TS-JMBG
TS-JMBG - Library for validating, decoding and generating random JMBG written in Typescript.
It is heavily based on two existing packages:
https://www.npmjs.com/package/jmbg
https://www.npmjs.com/package/oiblib
JMBG is personal ID number given to all citizens of Yugoslavia from 1976. It's still in use in all countries that consisted Yugoslavia.
More about JMBG here:
https://sr.wikipedia.org/sr-el/Јединствени_матични_број_грађанина
Installation
npm
npm i ts-jmbg --save
yarn
yarn add ts-jmbg
Examples
Is Valid
import { isValidJMBG } from 'ts-jmbg';
// Valid JMBG
console.log(isValidJMBG('0101990360007')); // true
// Invalid JMBG
console.log(isValidJMBG('0101001890123')); // false
Validate
import { validateJMBG } from 'ts-jmbg';
// Valid JMBG
const validJMBG = validateJMBG('0101990360007');
console.log(validJMBG.valid); // true
// Invalid JMBG
const invalidJMBG = validateJMBG('0101001890123');
console.log(invalidJMBG.valid); // false
console.log(invalidJMBG.reason); // INVALID_CONTROL_NUMBER
Generate Random JMBG
import { generateRandomJMBG, isValidJMBG } from 'ts-jmbg';
// Generate new valid JMBG
const newJMBG = generateRandomJMBG();
console.log(`Random JMBG: ${newJMBG}, is valid: ${isValidJMBG(newJMBG)}`);
Decode JMBG
import { decodeJMBG } from 'ts-jmbg';
try {
const decodedJMBG = decodeJMBG('0101001250028');
// {
// day: 1,
// gender: 'Male',
// month: 1,
// place: 'Cetinje',
// region: 'Crna Gora',
// year: 2001,
// }
} catch (error) {
// invalid JMBG
}
Related
Todo
- [ ] validateJMBG should check if region is correct. (RR)
- [ ] Random JMBG generator - better random distribution
- [ ] Pass params to random JBMG generator to respect predefined options like (DD, MM, YYY, RR, BBB, K)
Thanks
Contributing
- Fork this repo
- Clone your repo
- Install dependencies
- Checkout a feature branch
- Feel free to add your features
- Make sure your features are fully tested
- Open a pull request, and enjoy <3