Untitled
unknown
plain_text
2 years ago
1.1 kB
6
Indexable
function verificaCNP(cnp) { if (cnp.length !== 13) { return false; // Lungimea CNP-ului trebuie să fie de exact 13 caractere. } // Extrage primele 12 cifre din CNP. var cifre = cnp.slice(0, 12); // Verificăm dacă cifrele sunt numerice. if (!/^\d+$/.test(cifre)) { return false; } // Se calculează cifra de control (ultima cifră din CNP). var cifraControl = parseInt(cnp[12], 10); // Se calculează suma cifrelor din CNP înmulțite cu ponderile corespunzătoare. var ponderi = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9]; var suma = 0; for (var i = 0; i < 12; i++) { suma += parseInt(cifre[i], 10) * ponderi[i]; } // Se calculează restul împărțirii sumei la 11. var rest = suma % 11; // Se verifică dacă cifra de control este corectă. if (rest === 10) { return cifraControl === 1; } else { return cifraControl === rest; } } // Exemplu de utilizare: var cnp = "1881229399999"; // Înlocuiți cu CNP-ul dvs. if (verificaCNP(cnp)) { console.log("CNP-ul este corect."); } else { console.log("CNP-ul este incorect."); }
Editor is loading...