Untitled
unknown
plain_text
2 years ago
1.1 kB
8
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...