@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
36 lines (35 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.norwegianOrgNumberValidator = norwegianOrgNumberValidator;
function norwegianOrgNumberValidator(value, errorMessages) {
if (value !== undefined) {
const orgNoIs9Digits = value?.length === 9;
if (!orgNoIs9Digits) {
return Error(errorMessages.errorOrgNoLength);
}
if (orgNoIs9Digits && !isValidOrgNumber(value)) {
return Error(errorMessages.errorOrgNo);
}
}
return undefined;
}
function isValidOrgNumber(digits) {
if (parseFloat(digits) === 0) {
return false;
}
let checkDigit = 2;
let sum = 0;
for (let i = digits.length - 2; i >= 0; --i) {
sum += parseInt(digits.charAt(i), 10) * checkDigit;
checkDigit += 1;
if (checkDigit > 7) {
checkDigit = 2;
}
}
const result = 11 - sum % 11;
const finalCheckDigit = result === 11 ? 0 : result;
return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit;
}
//# sourceMappingURL=validators.js.map