Check input isn't null before evaluating the number

This commit is contained in:
Matthew Grove
2018-11-14 19:07:01 +00:00
parent 8db49a24a3
commit e16016b8b5

View File

@@ -12,18 +12,23 @@ document.addEventListener("keyup", function(event) {
// function for validating number entered with Luhn algorithm // function for validating number entered with Luhn algorithm
function checkNumber() { function checkNumber() {
// retrieve digits & reverse // define input string and remove non-numerical characters
var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0; var input = document.getElementsByTagName("input")[0].value.replace(/\D/g,'');;
digits.forEach(function(currentDigit, index) { // check string isn't empty
newDigit = Number(currentDigit); if (input) {
if (index % 2 == 1) { // retrieve digits & reverse
if ((newDigit *= 2) > 9) { var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0;
newDigit -= 9; digits.forEach(function(currentDigit, index) {
newDigit = Number(currentDigit);
if (index % 2 == 1) {
if ((newDigit *= 2) > 9) {
newDigit -= 9;
}
} }
} sum += newDigit;
sum += newDigit; });
});
// displays evaluation message // displays evaluation message
$("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid"); $("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid");
}
} }