UNPKG

documentid-checksum-validator

Version:
47 lines (39 loc) 1.57 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = isValidDocId; function isValidDocId(value) { var valueArray = value.split(''); var valid = true; if (valueArray.length < 12 || valueArray.length > 12) { valid = false; } else { // standard multiplier for the control of 11th didgit var controleleventhDigitMultiplier = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]; // standard multiplier for the control of 12th digit var controltwelthDigitMulitplier = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]; var sumElevenDigits = 0; var sumTenDigits = 0; for (var i = 0; i < controleleventhDigitMultiplier.length; i++) { sumTenDigits += controleleventhDigitMultiplier[i] * valueArray[i]; } for (var j = 0; j < controltwelthDigitMulitplier.length; j++) { sumElevenDigits += controltwelthDigitMulitplier[j] * valueArray[j]; } var controlEleventhDigit = sumTenDigits - Math.floor(sumTenDigits / 11) * 11; var controlTwelthDigit = sumElevenDigits - Math.floor(sumElevenDigits / 11) * 11; if (controlEleventhDigit === 10) { controlEleventhDigit = 0; } else if (controlTwelthDigit === 10) { controlTwelthDigit = 0; } if (controlEleventhDigit === valueArray[10] && controlTwelthDigit === valueArray[11]) { valid = true; } else { valid = false; } } return valid; } module.exports = exports['default'];