UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

29 lines 861 B
export function norwegianBbanValidator(value, errorMessages) { if (value !== undefined) { if (value.length !== 11) { return Error(errorMessages.errorBankAccountNumberLength); } if (!isValidNorwegianAccountNumber(value)) { return Error(errorMessages.errorBankAccountNumber); } } return undefined; } function isValidNorwegianAccountNumber(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