Это функция проверки ИИН на JavaScript. ИИН - это индивидуальный идентификационный номер присваемый каждому гражданину РК.
- первый фасет - содержит 6 разрядов (с а1 по а6) и характеризует год (две последние цифры), месяц и дату рождения физического лица;
- второй фасет - содержит 1 (а7) разряд и характеризует пол физического лица и век его рождения. Причем при определении значения разряда для мужчин используются нечетные цифры, а для женщин - четные цифры. Конкретные значения данного разряда выглядят следующим образом: 1 - для мужчин, родившихся в 19 веке; 2 - для женщин, родившихся в 19 веке; 3 - для мужчин, родившихся в 20 веке; 4 - для женщин, родившихся в 20 веке; 5 - для мужчин, родившихся в 21 веке; 6 - для женщин, родившихся в 21 веке. Следовательно, в данном разряде имеются резервные значения 7, 8, 9 и 0;
- третий фасет - содержит 4 разряда (с а8 по а11) и характеризует порядковый номер регистрации в системе. По данным Агентства по статистике Республики Казахстан максимальное количество родившихся в один день (начиная с 1999 года) - 1229 человек, поэтому 4 знака для порядкового номера регистрации вполне достаточно. Порядковый номер регистрации проставляется сплошной нумерацией в рамках одной группы (года рождения);
- четвертый фасет - содержит 1 разряд (а12) и является контрольным разрядом ИИН. Алгоритм расчета контрольного разряда ИИН приведен ниже.
В целях осуществления контроля и снижения ошибок клавиатурного ввода в составе ИИН предусматривается наличие контрольного 12-го разряда, при расчете которого будет использоваться следующий алгоритм в два цикла: а12=(а1b1+а2b2+а3b3+а4b4+а5b5+а6b6+а7b7+а8b8+а9b9+a10b10+a11*b11) mod 11, где: ai - значение i-гo разряда; bi - вес i-гo разряда. разряд ИИН: 1 2 3 4 5 6 7 8 9 10 11 вес разряда: 1 2 3 4 5 6 7 8 9 10 11.
- Если полученное число равно 10, то расчет контрольного разряда производится с другой последовательностью весов: разряд ИИН: 1 2 3 4 5 6 7 8 9 10 11 вес разряда: 3 4 5 6 7 8 9 10 11 1 2.
- Если полученное число также равно 10, то данный ИИН не используется.
- Если полученное число имеет значение от 0 до 9, то данное число берется в качестве контрольного разряда
Т.к. мы проверяем только введенный ИИН (не берем во внимание другие поля, такие как дата рождения, пол) мы проверяем следующим образом:
С 1 по 2 разряд - это год, т.е. значение может быть от 00 и до 99 С 3 по 4 разряд - это месяц, т.е. допустимые значения от 01 и до 12 в других случаях ИИН будет считаться неверным С 5 по 6 разряд - это день, т.е. допустимые значения от 01 и до 31 в других случаях ИИН будет считаться неверным 7 разряд - характеризует пол физического лица и век его рождения. Поэтому здесь функция проверяет 2 значения - введеный год и текущий год. Это нужно для проверки допустимых значений. С 8 по 10 разряд - порядковый номер - здесь он может быть любым. Поэтому ни как не проверяется. 11 разряд - это контрольный, который проверяется по формуле.
К странице подключаете iincheck.min.js
<script> var iin = 'ИИН для проверки'; if(iinCheck(iin)){ /* ИИН правильный */ }else{ /* ИИН не правильный */ } </script>