Here, you will see a validator to calculate if the ABN number is correct or not.
Introduction
In this post, you will see a simple function to validate the ABN for Australian's trade. This validator is for calculating if the ABN number is correct or not. I create a function in JavaScript and C#. I hope this will help you in some way.
C# Version
public static bool Abn_Validator(string ABN)
{
bool result;
ABN = ABN.Trim().Replace(" ", "");
if (ABN.Length == 11)
{
try
{
char[] nums = ABN.ToArray();
int[] control = new int[11];
control[0] = (Convert.ToInt32(nums[0].ToString()) - 1) * 10;
control[1] = Convert.ToInt32(nums[1].ToString());
control[2] = Convert.ToInt32(nums[2].ToString()) * 3;
control[3] = Convert.ToInt32(nums[3].ToString()) * 5;
control[4] = Convert.ToInt32(nums[4].ToString()) * 7;
control[5] = Convert.ToInt32(nums[5].ToString()) * 9;
control[6] = Convert.ToInt32(nums[6].ToString()) * 11;
control[7] = Convert.ToInt32(nums[7].ToString()) * 13;
control[8] = Convert.ToInt32(nums[8].ToString()) * 15;
control[9] = Convert.ToInt32(nums[9].ToString()) * 17;
control[10] = Convert.ToInt32(nums[10].ToString()) * 19;
int total = 0;
for (int i = 0; i < 11; i++)
{
total += control[i];
}
if (total % 89 == 0) result = true;
else result = false;
}
catch
{
result = false;
}
}
else result = false;
return result;
}
JavaScript Version
function Abn_Validator(myAbn)
{
let result = false;
let ABN;
try {
ABN = myAbn.value;
} catch (e) {
ABN = '';
}
if (ABN.length == 11) {
try {
let control = new Array(11);
control[0] = (convert2integer(ABN[0],false) - 1) * 10;
control[1] = convert2integer(ABN[1], false);
control[2] = convert2integer(ABN[2], false) * 3;
control[3] = convert2integer(ABN[3], false) * 5;
control[4] = convert2integer(ABN[4], false) * 7;
control[5] = convert2integer(ABN[5], false) * 9;
control[6] = convert2integer(ABN[6], false) * 11;
control[7] = convert2integer(ABN[7], false) * 13;
control[8] = convert2integer(ABN[8], false) * 15;
control[9] = convert2integer(ABN[9], false) * 17;
control[10] = convert2integer(ABN[10], false) * 19;
let total = 0;
for (let i = 0; i < 11; i++)
{
total += control[i];
}
if (total % 89 == 0) result = true;
else result = false;
}
catch
{
result = false;
}
}
else result = false;
return result;
}
History
- 22nd August, 2020: Initial version
- 24th August 2020: change variables name from spanish to english.