Bu yazıda TC kimlik numarasını oluşturmak için kullanılan algoritmayı inceleyip TC Kimlik NO doğrulama işlemi javascript ile nasıl yapılacağını ele alacağız.
Canlı Örneği Kontrol etmek için tıklayın.
İlk olarak TC kimlik numarası doğrulama algoritmasına bakalım.
TC Kimlik Numarası Algoritması
TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan, yani Mod 10’u bize 10. haneyi verir.
* 1. 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.
JavaScript ile TC Kimlik Numarası Doğrulama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /*TC Kimlik Kontrol*/ var TCKimlikKOntrol = function(deger) { deger = deger.toString(); var basamak = /^[0-9]{11}$/.test(deger); var toplamX = 0; for (var i = 0; i < 10; i++) { toplamX += Number(deger.substr(i, 1)); } var kuralX = toplamX % 10 == deger.substr(10,1); var toplamY = 0; var toplamY = 0; for (var i = 0; i < 10; i+=2) { toplamY += Number(deger.substr(i, 1)); } for (var i = 1; i < 10; i+=2) { toplamY += Number(deger.substr(i, 1)); } var kuralY = ((toplamY * 7) - toplamY) % 10 == deger.substr(9,0); return basamak && kuralX && kuralY; }; /*TC Kimlik Kontrol*/ |
Çalışan bir örnek için aşağıdaki kodları kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> </head> <body> <input type="text" id="tcno"> <div id="sonuc"></div> <script> /*TC Kimlik Kontrol*/ var TCKimlikKOntrol = function(deger) { deger = deger.toString(); var basamak = /^[0-9]{11}$/.test(deger); var toplamX = 0; for (var i = 0; i < 10; i++) { toplamX += Number(deger.substr(i, 1)); } var kuralX = toplamX % 10 == deger.substr(10,1); var toplamY = 0; var toplamY = 0; for (var i = 0; i < 10; i+=2) { toplamY += Number(deger.substr(i, 1)); } for (var i = 1; i < 10; i+=2) { toplamY += Number(deger.substr(i, 1)); } var kuralY = ((toplamY * 7) - toplamY) % 10 == deger.substr(9,0); return basamak && kuralX && kuralY; }; /*TC Kimlik Kontrol*/ const inputTCNO=document.querySelector("#tcno"); const divSonuc=document.querySelector("#sonuc"); inputTCNO.oninput= function(){ if(TCKimlikKOntrol(this.value)) { divSonuc.textContent="TC Kimlik Numarasıdır"; } else { divSonuc.textContent="TC Kimlik Numarası Değildir"; } } </script> </body> </html> |
Yorum Yap