GithubHelp home page GithubHelp logo

borko-rajkovic / ts-jmbg Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 2.0 496 KB

Validate, decode and generate random JMBG in Typescript

Home Page: https://www.npmjs.com/package/ts-jmbg

License: MIT License

TypeScript 100.00%
jmbg montenegro serbia croatia macedonia slovenia yugoslavia

ts-jmbg's Introduction

TS-JMBG

npm version GitHub npm Travis (.org) Coveralls github

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/Јединствени_матични_број_грађанина

NPM

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

ts-jmbg's People

Watchers

 avatar  avatar

Forkers

uk1sh3 uk1sh49

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.