Giter Site home page Giter Site logo

crowar / iincheck Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shatmanov/iincheck

0.0 0.0 0.0 6 KB

Это функция проверки ИИН на JavaScript. ИИН - это индивидуальный идентификационный номер присваемый каждому гражданину РК.

License: MIT License

iincheck's Introduction

iinCheck

Stars License

Это функция проверки ИИН на JavaScript. ИИН - это индивидуальный идентификационный номер присваемый каждому гражданину РК.

Алгоритм генерирования ИИН

QovEhfP2zv56c9dq1EBYTQ894sr9Rv

  1. первый фасет - содержит 6 разрядов (с а1 по а6) и характеризует год (две последние цифры), месяц и дату рождения физического лица;
  2. второй фасет - содержит 1 (а7) разряд и характеризует пол физического лица и век его рождения. Причем при определении значения разряда для мужчин используются нечетные цифры, а для женщин - четные цифры. Конкретные значения данного разряда выглядят следующим образом: 1 - для мужчин, родившихся в 19 веке; 2 - для женщин, родившихся в 19 веке; 3 - для мужчин, родившихся в 20 веке; 4 - для женщин, родившихся в 20 веке; 5 - для мужчин, родившихся в 21 веке; 6 - для женщин, родившихся в 21 веке. Следовательно, в данном разряде имеются резервные значения 7, 8, 9 и 0;
  3. третий фасет - содержит 4 разряда (с а8 по а11) и характеризует порядковый номер регистрации в системе. По данным Агентства по статистике Республики Казахстан максимальное количество родившихся в один день (начиная с 1999 года) - 1229 человек, поэтому 4 знака для порядкового номера регистрации вполне достаточно. Порядковый номер регистрации проставляется сплошной нумерацией в рамках одной группы (года рождения);
  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.

  1. Если полученное число равно 10, то расчет контрольного разряда производится с другой последовательностью весов: разряд ИИН: 1 2 3 4 5 6 7 8 9 10 11 вес разряда: 3 4 5 6 7 8 9 10 11 1 2.
  2. Если полученное число также равно 10, то данный ИИН не используется.
  3. Если полученное число имеет значение от 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>

iincheck's People

Contributors

shatmanov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.