mirror of
https://github.com/skidoodle/cc-validator.git
synced 2025-02-15 05:39:14 +01:00
Update script.js
This commit is contained in:
parent
6c3255f2bb
commit
b9428cd5c5
1 changed files with 24 additions and 17 deletions
41
script.js
41
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) {
|
function restrictInput(a) {
|
||||||
a.value = a.value.replace(/[^0-9]/g, "").slice(0, 16);
|
a.value = a.value.replace(/[^0-9]/g, "").slice(0, 16);
|
||||||
}
|
}
|
||||||
|
@ -6,27 +27,14 @@ function validateCreditCard(a) {
|
||||||
var b = getCardNetwork(a);
|
var b = getCardNetwork(a);
|
||||||
return b && a.length == b.length && luhnCheck(a) ? !0 : !1;
|
return b && a.length == b.length && luhnCheck(a) ? !0 : !1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCardNetwork(a) {
|
function getCardNetwork(a) {
|
||||||
const cardNetworks = [
|
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()) {
|
||||||
{ pattern: /^\b4\d{15}\b/, name: "Visa", length: 16 },
|
if (c = c.value, c.pattern.test(a)) {
|
||||||
{ pattern: /^\b5[1-5]\d{14}\b/, name: "MasterCard", length: 16 },
|
return {name:c.name, length:c.length};
|
||||||
{ 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 };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function luhnCheck(a) {
|
function luhnCheck(a) {
|
||||||
for (var b = 0, c = !1, e = a.length - 1; 0 <= e; e--) {
|
for (var b = 0, c = !1, e = a.length - 1; 0 <= e; e--) {
|
||||||
var d = parseInt(a.charAt(e));
|
var d = parseInt(a.charAt(e));
|
||||||
|
@ -36,7 +44,6 @@ function luhnCheck(a) {
|
||||||
}
|
}
|
||||||
return 0 === b % 10;
|
return 0 === b % 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkCC() {
|
function checkCC() {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
var a = document.querySelector("#cc"), b = document.querySelector("#result"), c = getCardNetwork(a.value);
|
var a = document.querySelector("#cc"), b = document.querySelector("#result"), c = getCardNetwork(a.value);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue