nz-bank-account-validator
Version:
A small, zero dependency NZ bank account validation library that runs everywhere.
45 lines (34 loc) • 997 B
JavaScript
import {
partMaxLengths
} from './constants';
const isString = x => x === x + '';
const isNumbersOnly = x => /^[0-9]+$/.test(x);
const padLeft = (input, length, token = '0') => Array(length - String(input).length + 1).join(token) + input;
const inRange = (start, value, end) => value >= start && value <= end;
const inRanges = (value, ranges = []) => {
return ranges.reduce((bool, range) => {
const [ start, end ] = range;
return bool || inRange(start, value, end);
}, false);
};
const sumChars = int => {
return (int + '').split('').reduce((acc, num) => {
return acc + (num * 1);
}, 0);
};
const getPaddedAccountArray = (partsObj) => {
return Object.keys(partsObj).reduce((a, k) => {
const paddedValue = padLeft(partsObj[k], partMaxLengths[k]);
const splitValues = paddedValue.split('');
return a.concat(splitValues);
}, []);
};
export default {
isString,
isNumbersOnly,
padLeft,
inRange,
inRanges,
sumChars,
getPaddedAccountArray
};