Skip to content

Iranians national number (NID,SSN) parser & validator

License

Notifications You must be signed in to change notification settings

fandogh/codemeli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeMeli

Iranians national number (NID,SSN) parser & validator

CircleCI npm

Node.js

City codes

# Using Yarn
yarn add codemeli
# Using NPM
npm install --save codemeli

Browser

<script src="https://unpkg.com/[email protected]" type='text/javascript'></script> 

API

This packages exports codemeli(code,returnObj) function

code

National number value. it can be string or number, both are supported.

return value

If for any reason input is invalid it will return null Otherwise It will return a formatted 10 digits code.

If returnObj is true (defaults to false) function will return an object with this fields instead:

  • code
  • parity
  • city_code
  • uid

Example

const codemeli = require('codemeli');

var inputValue='xxxxxxxxxx'; // TODO: Change this value

// Simple usage
const national_number = codemeli(inputValue);

console.log(national_number); // xxxxxxxxxx

// Object style
const national_number_obj = codemeli(inputValue, true);

/*
{
  code: 'xxxxxxxxxx',
  parity: 'x',
  city_code: 'xx',
  uid: 'xxxxxxx' 
}
*/
console.log(national_number_obj);

Algorithm

Parity checking algorithm extracted from an article from aliarash.com (Also available here)

City & State DB [WIP]

Unfortunately there is no public official db of city codes and there was typos in unofficial ones. I tried my best to detect typos by both comparing all of them and user comments. Here is the list of discovered references:

Please check docs/city_codes.json and docs/missing_cities.txt for more info.

Read More

Related projects

LICENSE

MIT License Copyright (c) 2017 Fandogh - Pooya Parsa