function IsRRNoValid(n) {
// RR numbers need to be 11 chars long
if (n.length != 11)
return false;
var checkDigit = n.substr(n.length - 2, 2);
var modFunction = function(nr) { return 97 - (nr % 97); };
var nrToCheck = parseInt(n.substr(0, 9));
// first check without 2
if (modFunction(nrToCheck) == checkDigit)
return true;
// then check with 2 appended for y2k+ births
nrToCheck = parseInt('2' + n.substr(0, 9));
return (modFunction(nrToCheck) == checkDigit);
}
Easy as pie. You can get the gender and date of birth out of there as well, but I don't need that info for my purpose. A slightly more advanced validation would also check to see if the first 6 digits represent a valid date according to the yyMMdd format (determining the right century using the current validation).
No comments:
Post a Comment