localCards.forEach(card => { var validationResult = cardValidator.number(card.cardNumber); if (!!validationResult && validationResult.isValid) { var content = document.createElement("div"); var cardIcon = document.createElement("i"); switch (validationResult.card.type) { case "visa": cardIcon.className = "cc-icons fab fa-cc-visa"; break; case "master-card": cardIcon.className = "cc-icons fab fa-cc-mastercard"; break; case "american-express": cardIcon.className = "cc-icons fab fa-cc-amex"; break; default: cardIcon.className = "cc-icons fa fa-credit-card"; break; } var numberContainer = document.createElement("h4"); numberContainer.className = "cc-numbers"; numberContainer.innerHTML = "**** " + card.cardNumber.substring(card.cardNumber.length - 4); content.appendChild(cardIcon); content.appendChild(numberContainer); addToInstrumentList( content, function() { requestUnmaskCard(card); }); } });
function confirmAddCardClicked(event) { var name = document.getElementById("full-name").value; var expDate = document.getElementById("exp-date").value; var expMonth = expDate.substring(5); var expYear = expDate.substring(0, 4); var number = document.getElementById("cc-number").value; var validationResult = cardValidator.number(number); var expDateValidation = cardValidator.expirationDate({ month: expMonth , year: expYear }); addCardConfirmed(name, number, expMonth, expYear); $("#add-card-modal").modal("toggle"); }
function cardInfoUpdated(event) { var name = document.getElementById("full-name").value; var expDate = document.getElementById("exp-date").value; var number = document.getElementById("cc-number").value; var validationResult = cardValidator.number(number); var expDateValidation = cardValidator.expirationDate({ month: expDate.substring(5) , year: expDate.substring(0, 4) }); var readyToSave = validationResult.isValid && expDateValidation.isValid && name.length > 0; document.getElementById("add-card-confirm-button").disabled = !readyToSave; var formattedNumber = formatCardNumber(number); if (number !== formattedNumber) { document.getElementById("cc-number").value = formattedNumber; } }
function formatCardNumber(number) { var validationResult = cardValidator.number(number); var formattedNumber = number; if (validationResult.isPotentiallyValid && !!(validationResult.card.gaps)) { var numberWithoutGaps = number.replace(/ /g, ""); var slices = []; var lastGap = 0; validationResult.card.gaps.forEach(gap => { if (gap <= numberWithoutGaps.length) { slices.push(numberWithoutGaps.substring(lastGap, gap)); lastGap = gap; } }); slices.push(numberWithoutGaps.substring(lastGap)); formattedNumber = slices.join(" "); } return formattedNumber; }