UNPKG

resul-tc

Version:

Türkiye Cumhuriyeti kimlik numarası (TC) doğrulama fonksiyonu. Geçerli olup olmadığını kontrol eder ve neden geçersiz olduğunu açıklar.

45 lines (37 loc) 1.38 kB
// Türkiye Cumhuriyeti Kimlik Numarası doğrulama fonksiyonu (sade loglu) // Kullanım: tc('12345678901') veya tc(12345678901) // Dönüş: { valid: true/false, logs: ["..."] } function tc(tcno) { const logs = []; tcno = String(tcno); // 11 haneli mi ve sadece rakam mı? if (!/^\d{11}$/.test(tcno)) { logs.push('TC kimlik numarası 11 haneli olmalı ve sadece rakamlardan oluşmalı.'); return { valid: false, logs }; } // İlk hane 0 olamaz if (tcno[0] === '0') { logs.push('İlk hane 0 olamaz.'); return { valid: false, logs }; } // Rakamları diziye çevir const digits = tcno.split('').map(Number); // 10. hanenin kontrolü const sumOdd = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]; const sumEven = digits[1] + digits[3] + digits[5] + digits[7]; const digit10 = ((sumOdd * 7) - sumEven) % 10; if (digit10 !== digits[9]) { logs.push('10. hane kuralı sağlanmıyor.'); return { valid: false, logs }; } // 11. hanenin kontrolü const sumAll = digits.slice(0, 10).reduce((a, b) => a + b, 0); if (sumAll % 10 !== digits[10]) { logs.push('11. hane kuralı sağlanmıyor.'); return { valid: false, logs }; } logs.push('TC kimlik numarası geçerli.'); return { valid: true, logs }; } // Dışa aktar (CommonJS) module.exports = tc;