AADHAR NUMBER VERIFY WITH JAVASCRIPT (OFFLINE)

Hi, we are going to make helper function for JAVASCRIPT, which validate aadhar number off-line.

For that we are using VERHOEFF algorithm, which is recommended by INDIAN Government.

Please check following helper function for more information.

/*...multiplication table...*/
const multiplicationTable = [
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    [1, 2, 3, 4, 0, 6, 7, 8, 9, 5],
    [2, 3, 4, 0, 1, 7, 8, 9, 5, 6],
    [3, 4, 0, 1, 2, 8, 9, 5, 6, 7],
    [4, 0, 1, 2, 3, 9, 5, 6, 7, 8],
    [5, 9, 8, 7, 6, 0, 4, 3, 2, 1],
    [6, 5, 9, 8, 7, 1, 0, 4, 3, 2],
    [7, 6, 5, 9, 8, 2, 1, 0, 4, 3],
    [8, 7, 6, 5, 9, 3, 2, 1, 0, 4],
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
]
/*...permutation table...*/
const permutationTable = [
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    [1, 5, 7, 6, 2, 8, 3, 0, 9, 4],
    [5, 8, 0, 3, 7, 9, 6, 1, 4, 2],
    [8, 9, 1, 6, 0, 4, 3, 5, 2, 7],
    [9, 4, 5, 3, 1, 2, 6, 8, 7, 0],
    [4, 2, 8, 6, 5, 7, 3, 9, 0, 1],
    [2, 7, 9, 3, 8, 0, 6, 4, 1, 5],
    [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]
]

function aadharValidation(aadharNumber) {
    var index = 0;
    /*...
        split aadhar number,
        convert into number format,
        reverse aadhar number
    ...*/
    var aadharNumberArray = aadharNumber.split("").map(Number).reverse();
    aadharNumberArray.forEach((item, key) => {
        index = multiplicationTable[index][permutationTable[(key % 8)][item]];
    })
    return (index === 0)
}

By using this function, if we get TRUE then given aadhar number is valid & if FALSE then wrong aadhar number.