UNPKG

kennitalajs

Version:

Validation for an Icelandic kennitala (social security number)

167 lines (124 loc) 3.42 kB
# Kennitalajs Validation for an Icelandic kennitala (social security number) ### Getting started: #### Install with npm (npm install kennitalajs) or: ```html <!-- HTML --> <script type="text/javascript" src="https://unpkg.com/kennitalajs@latest/kennitala.min.js"></script> <script type="text/javascript"> var test = new Kennitala(2202863399); console.log(test); </script> ``` ```javascript //Nodejs require('kennitalajs/kennitala'); //or import 'kennitalajs/kennitala'; var test = new Kennitala(2202863399); console.log(test); ``` ### Accepted types: ```javascript //Kennitalajs accepts all types of possible kt formats var type1 = 2202863399; //Integer var type2 = '2202863399'; //String var type3 = '220286-3399'; //String with the widely used hyphen // I do however reccommend storing the kennitala in a string format since integers cant start with a zero ``` ### Validating a persons kennitala ```javascript var kennitala = new Kennitala(2202863399); //kennitala returns: { valid: true, //<----------- Tells us if the kennitala is valid type: 'person', //<-------- Tells us if kennitala belongs to a person or a company age: 22, //<--------------- The person/company age in years msAge: 694383374545, //<--- Time in milliseconds since birth/company was founded birthdayToday: true, //<--- Tells us if the person/company has a birthday today kt: 2202863399 //<--------- The kennitala as a integer }; ``` ### Validating a company kennitala ```javascript var kennitala = new Kennitala('521110-0660'); //kennitala returns: { valid: true, type: 'company', age: 5, msAge: 174515150922, birthdayToday: true, kt: 5211100660 }; ``` ### Create a fake (but valid) kennitala ```javascript var kennitala = new Kennitala('fake'); //kennitala returns: { valid: true, ...... }; ``` ### Invalid date examples We can recieve 5 possible reasons for when the kennitala is not valid: #### Kennitala can be too short ```javascript var kennitala = new Kennitala(22028633); //kennitala returns: { valid: false, reason: 'Kennitala is too short', errorCode: 1 }; ``` #### Something is wrong with digits 1 and 2 **XX**xxxxxxxx: ```javascript var kennitala = new Kennitala(3202863399); kennitala returns: { valid: false, reason: 'Birthdate is out of range (digits 1 and 2)', errorCode: 2 }; ``` #### Something is wrong with digits 3 and 4 xx**XX**xxxxxx ```javascript var kennitala = new Kennitala(2222863399); //kennitala returns: { valid: false, reason: 'Month digits are out of range (digits 3 and 4)', errorCode: 3 }; ``` --- xxxx**XXX**xxx Digits 5,6,7 and 8 can be anything so we cant validate them --- #### Something is wrong with digit number 9 xxxxxxxx**X**x ```javascript var kennitala = new Kennitala(2202863349); //kennitala returns: { valid: false, reason: 'Digit 9 is not valid. Read about "Níundi stafurinn" here: https://is.wikipedia.org/wiki/Kennitala', errorCode: 4 }; ``` #### Something is wrong with digit number 10 xxxxxxxxx**X** ```javascript // var kennitala = new Kennitala(2202863393); //kennitala returns: { valid: false, reason: 'Century digit out of range (digit 10)', errorCode: 5 }; ```