is-valid-acn
Version:
Check if a number is a valid Australian Company Number (ACN)
21 lines (20 loc) • 587 B
JavaScript
var weights = [8, 7, 6, 5, 4, 3, 2, 1];
export default function isValidACN(rawAcn) {
if (!rawAcn) {
return false;
}
// strip non-alphanumeric characters
var acn = rawAcn.toString().replace(/[^a-z\d]/gi, '');
// check if length is 9 digits
if (acn.length !== 9) {
return false;
}
// apply ato check method
var sum = 0;
weights.forEach(function (weight, position) {
var digit = Number(acn[position]);
sum += weight * digit;
});
var checksum = (10 - (sum % 10)) % 10;
return checksum === Number(acn[8]);
}