Комментарии 9
Если кто-то не в курсе, то данная проверка основана на том, что ИНН содержит в себе контрольное число, которое записывается в конец номера. Контрольное число считается по известному заранее определённому алгоритму (из текста функции видно, как именно) из остальных цифр номера. Эта проверка по контрольному числу нужна для выявления случайной ошибки при вводе номера.
Аналогичные контрольные числа (уже со своими алгоритмами подсчёта) используются в ИНН, номерах бансковских пластиковых карт, в бар-кодах (штрих-кодах), в номерах социальных карт москвича, в международных идентиф. кодах ценных бумаг (ISIN), в номерах карт пенсионного страхования, В ОКПО, ОКАТО, ОГРН/ОГРНИП, ISSN, ISBN и других номерах.
Зная алгоритм подсчёта контрольного числа в каждом из этих случаев, можно написать аналогичную функцию проверки ввода и для этих номеров тоже.
Подробнее о контрольных числах в номерах см. статью на википедии.
Аналогичные контрольные числа (уже со своими алгоритмами подсчёта) используются в ИНН, номерах бансковских пластиковых карт, в бар-кодах (штрих-кодах), в номерах социальных карт москвича, в международных идентиф. кодах ценных бумаг (ISIN), в номерах карт пенсионного страхования, В ОКПО, ОКАТО, ОГРН/ОГРНИП, ISSN, ISBN и других номерах.
Зная алгоритм подсчёта контрольного числа в каждом из этих случаев, можно написать аналогичную функцию проверки ввода и для этих номеров тоже.
Подробнее о контрольных числах в номерах см. статью на википедии.
+28
Ваш комментарий для меня оказался интереснее самой статьи.
Спасибо.
Спасибо.
+19
Да, верно, спасибо что напомнили :)
Проверка номера карты у меня тоже реализована была чуть раньше.
blog.geoblogspot.com/2010/09/luhn-algorithm-credit-card-number.html
Вот по этому алгоритму
en.wikipedia.org/wiki/Luhn_algorithm
По остальным — точно, надо будет поискать готовые скрипты и реализовать как нормальную библиотеку.
Еще реализовал код Salesforce (пока не публиковал)
https://spreadsheets.google.com/ccc?key=0AppCRCbx33I9dHY2d0tXLTB0aE1SWE5meWt2VjZ2LWc&hl=en
Может тоже интересно будет.
Проверка номера карты у меня тоже реализована была чуть раньше.
blog.geoblogspot.com/2010/09/luhn-algorithm-credit-card-number.html
Вот по этому алгоритму
en.wikipedia.org/wiki/Luhn_algorithm
По остальным — точно, надо будет поискать готовые скрипты и реализовать как нормальную библиотеку.
Еще реализовал код Salesforce (пока не публиковал)
https://spreadsheets.google.com/ccc?key=0AppCRCbx33I9dHY2d0tXLTB0aE1SWE5meWt2VjZ2LWc&hl=en
Может тоже интересно будет.
0
Спасибо, не знал. Очень познавательно.
0
То есть, если в ИНН я использовал пробелы или тире, то номер неверный?
0
Это уже детали. Здесь просто, чтобы не усложнять объяснение, продемонстрирована функция проверки номера на ошибочность ввода.
В реальных условиях можно предварительно подготовить введённую строку: выкинуть все пробелы, точки, дефисы, тире, кавычки и уже в очищенном виде подавать на вход этой функции.
В реальных условиях можно предварительно подготовить введённую строку: выкинуть все пробелы, точки, дефисы, тире, кавычки и уже в очищенном виде подавать на вход этой функции.
+1
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Проверка ИНН в Google Spreadsheets