Provides a Joi rule to validate strings as sequences of numerals with a valid verhoeff checksum digit.
Strings are validated as being entirely composed of digits, and containing a valid checksum using node-verhoeff.
import BaseJoi from 'joi';
import JoiVerhoeff from 'joi-verhoeff';
const Joi = BaseJoi.extend(JoiVerhoeff);
// Create a joi schema using the Verhoeff validator;
const schema = Joi.string().verhoeff();
Results with valid checksum:
Joi.validate('3789125', Joi.string().verhoeff());
/*
{
error: null,
value: '3789125'
}
*/
Results with invalid checksum:
Joi.validate('3789122', Joi.string().verhoeff());
/*
{ error: {
[ValidationError: "value" checksum failure]
isJoi: true,
name: 'ValidationError',
details: [{
message: '"value" checksum failure',
path: 'value',
type: 'string.verhoeff',
context: { v: '3789122', key: 'value' }
}],
...
},
value: '3789122'
}
*/