json

cc

Raven-Style CC Checker

CC Validator Pro

Enter card details for structural validation

CARD
// script.js const cardInput = document.getElementById('cardNumber'); const brandDisplay = document.getElementById('cardBrand'); const validateBtn = document.getElementById('validateBtn'); const statusBox = document.getElementById('statusResult'); // 1. Format input with spaces and detect brand cardInput.addEventListener('input', (e) => { let value = e.target.value.replace(/\D/g, ''); // Remove non-digits // Detect Brand if (value.startsWith('4')) brandDisplay.innerText = "VISA"; else if (value.match(/^5[1-5]/)) brandDisplay.innerText = "MASTERCARD"; else if (value.match(/^3[47]/)) brandDisplay.innerText = "AMEX"; else brandDisplay.innerText = "CARD"; // Add spaces for readability let formattedValue = value.match(/.{1,4}/g)?.join(' ') || ""; e.target.value = formattedValue; }); // 2. The Luhn Algorithm Function function luhnCheck(num) { let arr = (num + '').split('').reverse().map(x => parseInt(x)); let lastDigit = arr.shift(); let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val *= 2) > 9 ? val - 9 : val)), 0); sum += lastDigit; return sum % 10 === 0; } // 3. Handle Click validateBtn.addEventListener('click', () => { const rawValue = cardInput.value.replace(/\s+/g, ''); if (rawValue.length < 13) { alert("Please enter a full card number."); return; } const isValid = luhnCheck(rawValue); statusBox.classList.remove('hidden'); if (isValid) { statusBox.className = "status-box valid"; document.getElementById('statusText').innerText = "STRUCTURALLY VALID"; document.getElementById('algoResult').innerText = "Passed (Mod 10)"; } else { statusBox.className = "status-box invalid"; document.getElementById('statusText').innerText = "INVALID NUMBER"; document.getElementById('algoResult').innerText = "Failed"; } });

Post a Comment

0 Comments