From e16016b8b5adb1bf1f2a5ee4677a043ec0a562c4 Mon Sep 17 00:00:00 2001 From: Matthew Grove Date: Wed, 14 Nov 2018 19:07:01 +0000 Subject: [PATCH] Check input isn't null before evaluating the number --- luhn-algorithm/script.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/luhn-algorithm/script.js b/luhn-algorithm/script.js index b4434da..7745fec 100644 --- a/luhn-algorithm/script.js +++ b/luhn-algorithm/script.js @@ -12,18 +12,23 @@ document.addEventListener("keyup", function(event) { // function for validating number entered with Luhn algorithm function checkNumber() { - // retrieve digits & reverse - var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0; - digits.forEach(function(currentDigit, index) { - newDigit = Number(currentDigit); - if (index % 2 == 1) { - if ((newDigit *= 2) > 9) { - newDigit -= 9; + // define input string and remove non-numerical characters + var input = document.getElementsByTagName("input")[0].value.replace(/\D/g,'');; + // check string isn't empty + if (input) { + // retrieve digits & reverse + var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0; + 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 - $("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid"); + // displays evaluation message + $("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid"); + } }