documentid-checksum-validator
Version:
checksum validation for government doc ids
36 lines (31 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = isValidDocId;
function isValidDocId(value) {
var valueArray = value.split('');
var valid = true;
if (valueArray.length < 11 || valueArray.length > 11) {
valid = false;
} else {
var lastTwoDigit = valueArray[9] * 10 + valueArray[10] * 1;
// standard multiplier for controling the last two digits in ssn
var multiplierString = [9, 8, 7, 6, 5, 4, 3, 2, 1];
var sum = 0;
for (var i = 0; i < multiplierString.length; i++) {
sum += multiplierString[i] * valueArray[i];
}
if (sum < 100 && sum === lastTwoDigit) {
valid = true;
}if ((sum === 100 || sum === 101) && lastTwoDigit === 0) {
valid = true;
}if (sum > 102 && sum - 101 === lastTwoDigit) {
valid = true;
} else {
valid = false;
}
}
return valid;
}
module.exports = exports['default'];