is-valid-abn
Version:
Check if a number is a valid Australian Business Number (ABN)
21 lines (20 loc) • 598 B
JavaScript
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;
}