Skip to content

Instantly share code, notes, and snippets.

Created September 5, 2014 08:13
Show Gist options
  • Save anonymous/a88e787f8011b2c572d1 to your computer and use it in GitHub Desktop.
Save anonymous/a88e787f8011b2c572d1 to your computer and use it in GitHub Desktop.
Creates a Javascript Object with gender and date of birth extracted from a given valid Sri Lanka N.I.C. Number
/**
* Creates a Javascript Object with gender and date of birth
* - extracted from a given valid Sri Lanka N.I.C. Number
* [email protected]
*/
function parseNIC(nic) {
var nicdata = {
gender: '',
dob: ''
};
var pattern = /[0-9]{9}[V|X]/;
if (!pattern.test(nic)) {
nicdata.gender = '';
nicdata.dob = '';
return false;
}
var mon = {
"1": ["Jan", 31],
"2": ["Feb", 29],
"3": ["Mar", 31],
"4": ["Apr", 30],
"5": ["May", 31],
"6": ["Jun", 30],
"7": ["Jul", 31],
"8": ["Aug", 31],
"9": ["Sep", 30],
"10": ["Oct", 31],
"11": ["Nov", 30],
"12": ["Dec", 31]
};
if (nic.length >= 5) {
year = "19" + nic.substr(0, 2);
days = parseInt(nic.substr(2, 3));
if (days > 500) {
nicdata.gender = "Female";
days = days - 500;
} else {
nicdata.gender = "Male";
}
var key;
for (key in mon) {
if (days > mon[key][1]) {
days = days - mon[key][1];
} else {
break;
}
}
if (days < 10) {
days = "0" + days;
}
nicdata.dob = mon[key][0] + ", " + days + " " + year;
}
return nicdata;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment