Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / Javascript

ABN Validator for Australia

1.75/5 (3 votes)
24 Aug 2020CPOL 7.4K  
Simple function to validate the ABN for Australian's trade
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

C#
/// Check if the ABN number is correct
/// number to check.
public static bool Abn_Validator(string ABN)
{
bool result;
ABN = ABN.Trim().Replace(" ", "");
if (ABN.Length == 11)
{
try            //this try cach is because if user try to send 123A567890B get exception
{
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

JavaScript
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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)