صحت سنجی کد ملی

علی ذوالفقار
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 } } } }
Back