istckimlik
Version:
A tool for validate Turkish Identification Number
36 lines (35 loc) • 1.73 kB
JavaScript
;
/**
* @Method: Checks Turkish Identification Number is true or false
* @Param {number}
* @Return {boolean}
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTCKimlik = void 0;
function isTCKimlik(TurkishID) {
// Convert to string for for loops etc.
var StringifiedTurkishID = TurkishID.toString();
// Check For Start With Zero because Turkish Identification Number cant start with zero
var checkIfStartWithZero = 0 !== Number(StringifiedTurkishID.substr(0, 1));
// Check For NumberCount of Turkish Identification Number. Count Must Be 11
var checkCountEvelen = /^[0-9]{11}$/.test(StringifiedTurkishID);
var totalSum = 0;
var totalPartialSum1 = 0;
var totalPartialSum2 = 0;
for (var i = 0; i < 10; i++) {
totalSum += Number(StringifiedTurkishID.substr(i, 1));
}
// Check if mod(10) gives 11th number of Turkish Identification Number
var checkModTenForEleven = totalSum % 10 === Number(StringifiedTurkishID.substr(10, 1));
for (var i = 0; i < 10; i += 2) {
totalPartialSum1 += Number(StringifiedTurkishID.substr(i, 1));
}
for (var i = 1; i < 10; i += 2) {
totalPartialSum2 += Number(StringifiedTurkishID.substr(i, 1));
}
// Check if mod(10) of these two variables math gives 10th number of Turkish Identification Number
var checkModTenForTen = (totalPartialSum1 * 7 - totalPartialSum2) % 10 === Number(StringifiedTurkishID.substr(9, 0));
// If everything is ok you will get an true for return. If there is a problem, script gives false for every error.
return checkIfStartWithZero && checkCountEvelen && checkModTenForEleven && checkModTenForTen;
}
exports.isTCKimlik = isTCKimlik;