UNPKG

valirator

Version:

Powerful javascript by schema validation tool

26 lines (20 loc) 625 B
import { isDefined, toString } from '../utils'; /** * * @param value * @param divisibleBy * @returns {boolean} */ export default function divisibleByRule(value, divisibleBy) { if (!isDefined(value)) { return true; } let multiplier = Math.max( toString(value - Math.floor(value)).length - 2, toString(divisibleBy - Math.floor(divisibleBy)).length - 2, ); multiplier = multiplier > 0 ? Math.pow(10, multiplier) : 1; return (value * multiplier) % (divisibleBy * multiplier) === 0; } divisibleByRule.ruleName = 'divisibleBy'; divisibleByRule.defaultMessage = 'must be divisible by %{expected}';