node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »

finnish-ssn

Finnish SSN validation and creation

Build Status 0 deps Downloads License

  • A micro Javascript library for validating and creating Finnish social security numbers
  • Lightweight, 3.5kB (1.5kB gzipped)
  • No dependencies

Installation

NPM

npm install finnish-ssn

Bower

bower install finnish-ssn

From unpkg.com

<script src="https://unpkg.com/finnish-ssn/dist/finnish-ssn.min.js"></script>

Usage

ES6

import FinnishSSN from "../finnish-ssn"
const isValid = FinnishSSN.validate('010101-100X');
console.log(isValid);
//  Yields true 
 

Oldskool Web: Writes FinnishSSN into global namespace.

<script src="https://unpkg.com/finnish-ssn/finnish-ssn.min.js"></script>
<script>
  // This is valid SSN 
  var isValid = FinnishSSN.validate('290296-7808');
  console.log(isValid);
  //  Yields true 
</script> 
 

Examples

Validate an SSN

//  This is valid SSN 
console.log('valid ssn returns ' + FinnishSSN.validate('290296-7808'));
//  'valid ssn returns true' 
 
//  This is invalid SSN 
console.log('invalid ssn returns ' + FinnishSSN.validate('010198-1000'));
//  'invalid ssn returns false' 
 

Parse SSN

//  This is valid SSN 
var parsedSsn =  FinnishSSN.parse('290296-7808');
//  This is invalid SSN 
console.log(parsedSsn);
{
  valid: true,
  sex: 'female',
  ageInYears: 19,
  dateOfBirth: Thu Feb 29 1996 00:00:00 GMT+0200 (EET)
}

Create an SSN for person that is 20 years old.

console.log('SSN for person that is 20 years old ' + FinnishSSN.createWithAge(20));
//  SSN for person that is 20 years old 010195-XXXX 

Functions

#validate(ssn)

  • Validates parameter given SSN. Returns true if SSN is valid, otherwise false

#parse(ssn)

  • Parses parameter given SSN. Returns object {valid: boolean, sex: "male|female", ageInYears: Number, dateOfBirth: Date }
{
  valid: false,
  sex: null,
  ageInYears: null,
  dateOfBirth: null
}
{
  valid: true,
  sex: 'male',
  ageInYears: 15,
  dateOfBirth: Tue Feb 29 2000 00:00:00 GMT+0200 (EET)
}
{
  valid: true,
  sex: 'female',
  ageInYears: 15,
  dateOfBirth: Mon Feb 28 2000 00:00:00 GMT+0200 (EET)
}

#createWithAge(age)

  • Creates a valid SSN using the given age (Integer). Generates randomly male and female SSN'n.

Building

# Build a distributable, minified UMD library compatible with browsers and Node 
npm run dist
 
# Run tests 
npm run test
 
# Run tests in watch-mode 
npm run test:watch

Changelog

1.1.1

1.1.0

  • Sources ported from ES5 --> ES6
  • Distributed js is transpiled to ES5 for backwards compatibility
  • API should still be backwards compatible with 1.0.3. Bumping minor-version to be on the safe side.

1.0.3

1.0.2

1.0.1

  • Clean semicolons, removed lodash

1.0.0

  • Initial release

Future development

  • FlowType
  • Use a better js doc tool

License

MIT License