UNPKG

is-valid-abn

Version:

Check if a number is a valid Australian Business Number (ABN)

21 lines (20 loc) 598 B
var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]; export default function isValidABN(rawAbn) { if (!rawAbn) { return false; } // strip non-alphanumeric characters var abn = rawAbn.toString().replace(/[^a-z\d]/gi, ''); // check if length is 11 digits if (abn.length !== 11) { return false; } // apply ato check method var sum = 0; weights.forEach(function (weight, position) { var digit = Number(abn[position]) - (position ? 0 : 1); sum += weight * digit; }); var checksum = sum % 89; return checksum === 0; }