
Bu dersimizde javascript ile TC kimlik numarasının uygunluğunu kontrol edeceğiz. Bildiğiniz gibi TC kimlik numarası belirli bir algoritmaya göre hazırlanmaktadır. Hazırlanan bu TC kimlik numarasının kendi içerisinde bir kontrol mekanizması da bulunuyor. Açıkçası hiç beklemediğim şekilde akıl edilerek üretilmiş durumda. Helal olsun gerçekten.
Kullanıcıdan girilen TC numarasının o kişiyemi ait olur olmadığını değil, girilmesi gerekilen değerlerin doğru bir şekilde girilip girilmediğini kontrol edeceğiz. Örneğin, son harfinin tek sayı olmayacağını herkes biliyordur. Bunun gibi kontroller yaparak gerçek bir TC kimlik no olup olmadığını kontrol edeceğiz.
TC Kimlik NO Matematiği
Kısa bir açıklama ile TC Kimlik numarasının nasıl oluştuğuna ve algoritmasına ulaşabilirsiniz. Aşağıda da bununla ilgili minlik bir bilgi almakadır.
- TC kimlik numaralarımızın 1. 3. 5. 7. ve 9. hanelerinin toplamının 7 katından, 2. 4. 6. ve 8. hanelerinin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan, yani mod10’u bize 10. haneyi verir.
- 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10’a bölümünden kalan, yani mod10’u bize 11. haneyi verir.
Yukarıda yer alan hesaplama bilgileri doğrultusunda hesaplama yaparak TC Kimlik numarasının formatını doğrulama işlemini gerçekleştireceğiz.
İlk olarak bir fonksiyon oluşturalım. Bu fonksiyona TCKimlikIslem() adını verelim ve parametre olarak TC kimlik numarasını gönderelim. Sonrasında TC kimlik kontrolü için yapılan matematiksel kontrolleri gerçekleştirelim.
function TCKimlikIslem(tcKimlikNo){ tcKimlikNo = parseInt(tcKimlikNo); var islenecek1, islenecek2; var hane1, hane2, hane3, hane4, hane5, hane6, hane7, hane8, hane9; var islem1, islem2; var result = false; if (tcKimlikNo.toString().length == 11) { islenecek1 = parseInt(tcKimlikNo / 100); islenecek2 = parseInt(tcKimlikNo / 100); hane1 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane2 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane3 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane4 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane5 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane6 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane7 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane8 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); hane9 = parseInt(islenecek1 % 10); islenecek1 = parseInt(islenecek1 / 10); islem1 = parseInt((10 - ((((hane1 + hane3 + hane5 + hane7 + hane9) * 3) + (hane2 + hane4 + hane6 + hane8)) % 10)) % 10); islem2 = parseInt((10 - (((((hane2 + hane4 + hane6 + hane8) + islem1) * 3) + (hane1 + hane3 + hane5 + hane7 + hane9)) % 10)) % 10); if ((islenecek2 * 100) + (islem1 * 10) + islem2 == tcKimlikNo) { result = true; } } return result; }
Yukarıda yer alan fonksiyonda TC Kimlik numarasını doğrulamak için gerçekleştirilen matematiksel işlemler yer almaktadır. Bu fonksiyondan true değeri döndürülmektedir. Bu fonksiyondan gelen değere göre işlem yapmak ve TRUE / FALSE olarak ayarlamak için bir fonksiyon daha oluşturuyoruz.
function TCKimlikKontrol(tcKimlikNo){ var result = false; if (TCKimlikIslem(tcKimlikNo)){ result = true; } return result; }
Yukarıdaki fonksiyonda da ilk fonksiyondan gelen değerin kontrolü yapılmaktadır. Böylelikle girilen TC Kimlik no değerinin doğru bir şekilde yazılıp yazılmadığını TRUE / FALSE olarak kontrol etmiş oluyoruz.
alert( TCKimlikKontrol("11111111111") );
Kullanımı oldukça basittir. Yukarıdaki gibi TC bilgisini gönderince true yada false olarak sonuç dönecektir. Yukarıda yer alan değer için sonuç pek tabiki de FALSE olacaktır. Bu değeri görebilmeniz için alert ile yazdırdım. Bunu koşul belirtmek için kullandığınızda işlevsellik kazanacaktır.