From b9428cd5c5be04b8c2f1c49b8a5450469c74981b Mon Sep 17 00:00:00 2001 From: skidoodle Date: Mon, 30 Oct 2023 18:13:26 +0100 Subject: [PATCH] Update script.js --- script.js | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/script.js b/script.js index d4c302e..d5ad056 100644 --- a/script.js +++ b/script.js @@ -1,3 +1,24 @@ +var $jscomp = $jscomp || {}; +$jscomp.scope = {}; +$jscomp.arrayIteratorImpl = function(a) { + var b = 0; + return function() { + return b < a.length ? {done:!1, value:a[b++]} : {done:!0}; + }; +}; +$jscomp.arrayIterator = function(a) { + return {next:$jscomp.arrayIteratorImpl(a)}; +}; +$jscomp.makeIterator = function(a) { + var b = "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator]; + if (b) { + return b.call(a); + } + if ("number" == typeof a.length) { + return $jscomp.arrayIterator(a); + } + throw Error(String(a) + " is not an iterable or ArrayLike"); +}; function restrictInput(a) { a.value = a.value.replace(/[^0-9]/g, "").slice(0, 16); } @@ -6,27 +27,14 @@ function validateCreditCard(a) { var b = getCardNetwork(a); return b && a.length == b.length && luhnCheck(a) ? !0 : !1; } - function getCardNetwork(a) { - const cardNetworks = [ - { pattern: /^\b4\d{15}\b/, name: "Visa", length: 16 }, - { pattern: /^\b5[1-5]\d{14}\b/, name: "MasterCard", length: 16 }, - { pattern: /^\b3[47]\d{13}\b/, name: "American Express", length: 15 }, - { pattern: /^\b30[0-5]\d{11}\b/, name: "Diners Club", length: 14 }, - { pattern: /^\b35[3-8]\d{13}\b/, name: "JCB", length: 16 }, - { pattern: /^\b5[0678]\d{14,17}\b/, name: "Maestro", length: 16 }, - { pattern: /^\b6011\d{12}\b/, name: "Discover", length: 16 } - ]; - - for (const network of cardNetworks) { - if (network.pattern.test(a)) { - return { name: network.name, length: network.length }; + for (var b = $jscomp.makeIterator([{pattern:/^\b4\d{15}\b/, name:"Visa", length:16}, {pattern:/^\b5[1-5]\d{14}\b/, name:"MasterCard", length:16}, {pattern:/^\b3[47]\d{13}\b/, name:"American Express", length:15}, {pattern:/^\b30[0-5]\d{11}\b/, name:"Diners Club", length:14}, {pattern:/^\b35[3-8]\d{13}\b/, name:"JCB", length:16}, {pattern:/^\b5[0678]\d{14,17}\b/, name:"Maestro", length:16}, {pattern:/^\b6011\d{12}\b/, name:"Discover", length:16}]), c = b.next(); !c.done; c = b.next()) { + if (c = c.value, c.pattern.test(a)) { + return {name:c.name, length:c.length}; } } - return null; } - function luhnCheck(a) { for (var b = 0, c = !1, e = a.length - 1; 0 <= e; e--) { var d = parseInt(a.charAt(e)); @@ -36,7 +44,6 @@ function luhnCheck(a) { } return 0 === b % 10; } - function checkCC() { event.preventDefault(); var a = document.querySelector("#cc"), b = document.querySelector("#result"), c = getCardNetwork(a.value);