Iranians national number (NID,SSN) parser & validator
Node.js
# Using Yarn
yarn add codemeli
# Using NPM
npm install --save codemeli
Browser
<script src="https://unpkg.com/[email protected]" type='text/javascript'></script>
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
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);
Parity checking algorithm extracted from an article from aliarash.com (Also available here)
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.
MIT License Copyright (c) 2017 Fandogh - Pooya Parsa