@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
48 lines • 1.37 kB
JavaScript
import { dnr, fnr } from '@navikt/fnrvalidator';
function identificationNumberIsOfLength(identificationNumber, length) {
return identificationNumber?.length === length;
}
export function validateFnr(value, {
errorFnr,
errorFnrLength
}) {
if (value !== undefined) {
if (Number.parseInt(value.substring(0, 1), 10) > 3) {
return Error(errorFnr);
}
const fnrIs11Digits = identificationNumberIsOfLength(value, 11);
if (!fnrIs11Digits) {
return Error(errorFnrLength);
}
if (fnrIs11Digits && fnr(value).status === 'invalid') {
return Error(errorFnr);
}
}
return undefined;
}
export function validateDnr(value, {
errorDnr,
errorDnrLength
}) {
if (value !== undefined) {
if (Number.parseInt(value.substring(0, 1), 10) < 4) {
return Error(errorDnr);
}
const dnrIs11Digits = identificationNumberIsOfLength(value, 11);
if (!dnrIs11Digits) {
return Error(errorDnrLength);
}
if (dnrIs11Digits && dnr(value).status === 'invalid') {
return Error(errorDnr);
}
}
return undefined;
}
export function validateDnrAndFnr(value, errorMessages) {
const dnrValidationPattern = '^[4-9].*';
if (new RegExp(dnrValidationPattern).test(value)) {
return validateDnr(value, errorMessages);
}
return validateFnr(value, errorMessages);
}
//# sourceMappingURL=validators.js.map