Чтобы блог не пустовал, выложу тут простенький скрипт проверки на валидность ОГРН и ОГРНИП(больше на 2 знака). Вдруг кто-нибудь будет искать готовый =)
ОГРН (основной государственный регистрационный номер) — государственный регистрационный номер записи о создании юридического лица либо записи о первом представлении в соответствии с Федеральным законом Российской Федерации «О государственной регистрации юридических лиц» сведений о юридическом лице, зарегистрированном до введения в действие указанного Закона (пункт 8 Правил ведения Единого государственного реестра юридических лиц).
Вся проверка сводится к вычислению остатка от деления и сравнения его с последним знаком в числе (крайним правым). Если остаток равен 10 то последним знаком должен быть ноль.
function checkOgrn(chekedValue) {
//дальше работаем со строкой
chekedValue += '';
//для ОГРН в 13 знаков
if(chekedValue.length == 13 &&
(chekedValue.slice(12,13) == ((chekedValue.slice(0,-1))%11 + '').slice(-1))){
return true;
//для ОГРН в 15 знаков
}else if(chekedValue.length == 15 &&
(chekedValue.slice(14,15) == ((chekedValue.slice(0,-1))%13 + '').slice(-1))){
return true;
}else{
return false;
}
}
Версия для PHP находится тут
6 комментариев
Спустя два года он таки кому-то понадобился. Пост писал не зря.
Ответить
Мне тоже пригодился )
Ответить
Добрый день, спасибо за статью, очень помогли ваши работы, однако в данном примере у вас есть ошибочка:
При chekedValue.slice(-1) так же получаем последний элемент, а значит всегда верно, при необходимом количестве элементов.
У себя исправил на chekedValue.slice(0,12) и chekedValue.slice(0,14) соответственно.
Ответить
У меня сейчас работает вот такой код:
*обновил код в статье*
Ответить
В поиске правильного ответа, наткнулся на Ваш алгоритм, и вот что я Вас скажу, проверьте следующий ОГРН 1036300220332 (реально существующей организации) и Вы будите неприятно удивлены. Если кто-то знает варианты решения, милости просим..
Ответить
Любопытный случай. Формула в статье верная.
Остаток от деления числа 103630022033 на 11 равен 10, т.е. контрольное число (последняя цифра) должна быть равна нулю. Но это не так. Т.е. налоговая выдала некорректный ОГРН.
Проверить подсчеты легко в вольфраме
Думаю ООО Сантэл очень «повезло» с номером =)
Ответить