Created
October 18, 2022 09:04
-
-
Save henideepak/1cbd1016d26821ba12d72ed9041c6f5c to your computer and use it in GitHub Desktop.
Aadhaar Number validation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> | |
<div class="form-group"> | |
<label for="aadhaar_number" class="col-lg-5 control-label">Aadhaar Number <span style="color: red">*</span></label> | |
<div class="col-lg-7 "> | |
<input maxlength="12" type="number" class="form-control" id="aadhaar_number" name="aadhaar_no" placeholder="Aadhaar Number" required=""> | |
<p id="aadhaar_number_op"></p> | |
</div> | |
</div> | |
<script> | |
var d = [ | |
[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 p | |
var p = [ | |
[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] | |
]; | |
// inverse table inv | |
var inv = [0, 4, 3, 2, 1, 5, 6, 7, 8, 9]; | |
// converts string or number to an array and inverts it | |
function invArray(array) { | |
if (Object.prototype.toString.call(array) === "[object Number]") { | |
array = String(array); | |
} | |
if (Object.prototype.toString.call(array) === "[object String]") { | |
array = array.split("").map(Number); | |
} | |
return array.reverse(); | |
} | |
// generates checksum | |
function generate(array) { | |
var c = 0; | |
var invertedArray = invArray(array); | |
for (var i = 0; i < invertedArray.length; i++) { | |
c = d[c][p[((i + 1) % 8)][invertedArray[i]]]; | |
} | |
return inv[c]; | |
} | |
// validates checksum | |
function validate(array) { | |
var c = 0; | |
var invertedArray = invArray(array); | |
for (var i = 0; i < invertedArray.length; i++) { | |
c = d[c][p[(i % 8)][invertedArray[i]]]; | |
} | |
return (c === 0); | |
} | |
var g_aadhar_num = ""; | |
$(document).ready(function() { | |
$("#aadhaar_number_op")[0].innerText = "Enter 12 digits..."; | |
$('#aadhaar_number').keyup(function() { | |
$("#aadhaar_number_op")[0].innerText = "Enter " + (12 - $('#aadhaar_number')[0].value.length) + " more digits..."; | |
if ($('#aadhaar_number')[0].value.length == 12) { | |
g_aadhar_num = $('#aadhaar_number')[0].value; | |
if (validate($('#aadhaar_number')[0].value) == true) { | |
$("#aadhaar_number_op").attr("style", "color:green"); | |
$("#aadhaar_number_op")[0].innerText = "Checksum Pass!" | |
} else { | |
$("#aadhaar_number_op").attr("style", "color:red"); | |
$("#aadhaar_number_op")[0].innerText = "Checksum Fail! Invalid Aadhar" | |
} | |
} else if($('#aadhaar_number')[0].value.length > 12) { | |
$("#aadhaar_number_op")[0].innerText = "can't enter more than 12 digits..."; | |
$('#aadhaar_number')[0].value = g_aadhar_num; | |
} | |
}); | |
}); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment