صحت سنجی کد ملی
علی ذوالفقار
1399/10/27 11:35:50 (776)
function checkCodeMeli(code)
{
var L=code.length;
if(L<8 || parseInt(code,10)==0) return false;
code=('0000'+code).substr(L+4-10);
if(parseInt(code.substr(3,6),10)==0) return false;
var c=parseInt(code.substr(9,1),10);
var s=0;
for(var i=0;i<9;i++)
s+=parseInt(code.substr(i,1),10)*(10-i);
s=s%11;
return (s<2 && c==s) || (s>=2 && c==(11-s));
return true;
}
function validateNIN(snin) {
// if string nin length is less than 10 character
if (snin.length < 10) {
// wrong nin
return false;
} else {
// check for valid pattern
if (snin == '0000000000' || snin == '1111111111' || snin == '2222222222' || snin == '3333333333' || snin == '4444444444' || snin == '5555555555' || snin == '6666666666' || snin == '7777777777' || snin == '8888888888' || snin == '9999999999') {
return false;
} else {
// check for parity with refahi.ir check function
var c = parseInt(snin.charAt(9));
var n = parseInt(snin.charAt(0)) * 10 +
parseInt(snin.charAt(1)) * 9 +
parseInt(snin.charAt(2)) * 8 +
parseInt(snin.charAt(3)) * 7 +
parseInt(snin.charAt(4)) * 6 +
parseInt(snin.charAt(5)) * 5 +
parseInt(snin.charAt(6)) * 4 +
parseInt(snin.charAt(7)) * 3 +
parseInt(snin.charAt(8)) * 2;
var r = n - parseInt(n / 11) * 11;
// return (r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r);
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r)) {
return true;
} else {
return false
}
}
}
}