Открыть меню    

Проверка ИНН на jQuery при помощи плагина validation

Проверку ИНН следует проводить, вычисляя контрольные числа.

Ниже представлен метод для плагина validation, который проверят вводимый пользователем ИНН. На вход наш метод получает ИНН длинной 10 или 12 знаков, на выход возвращает true или false, в зависимости от результатов проверки. Все просто и без лишнего кодирования.

  k12 k11 k10 k k k k k k k k k
вычисление контрольного числа n2

для 12-значного ИНН

7 2 4 10 3 5 9 4 6 8    
вычисление контрольного числа n1

для 12-значного ИНН

3 7 2 4 10 3 5 9 4 6 8  
вычисление контрольного числа n1

для 10-значного ИНН

     

jQuery


//   check INN
$.validator.addMethod("checkINN", function(value, elem) {
    var inputNumber = $(elem).val();  // или value
    //преобразуем в строку
    inputNumber = "" + inputNumber;
    //преобразуем в массив
    inputNumber = inputNumber.split('');
    //для ИНН в 10 знаков
    if((inputNumber.length == 10) &&
        (inputNumber[9] ==
            ((2 * inputNumber[  0] + 4 * inputNumber[1] + 10 *
             inputNumber[2] + 3 * inputNumber[3] + 5 *
             inputNumber[4] + 9 * inputNumber[5] + 4 *
             inputNumber[6] + 6 * inputNumber[7] + 8 *
             inputNumber[8]) % 11) % 10))
    {
        return true;
    //для ИНН в 12 знаков
    }
    else if((inputNumber.length == 12) &&
        ((inputNumber[10] == ((7 * inputNumber[ 0] + 2 *
        inputNumber[1] + 4 * inputNumber[2] + 10 *
        inputNumber[3] + 3 * inputNumber[4] + 5 *
        inputNumber[5] + 9 * inputNumber[6] + 4 *
        inputNumber[7] + 6 * inputNumber[8] + 8 *
        inputNumber[9]) % 11) % 10) &&
        (inputNumber[11] == ((3 * inputNumber[ 0] + 7 *
         inputNumber[1] + 2 * inputNumber[2] + 4 *
         inputNumber[3] + 10 * inputNumber[4] + 3 *
         inputNumber[5] + 5 * inputNumber[6] + 9 *
         inputNumber[7] + 4 * inputNumber[8] + 6 *
         inputNumber[9] + 8 * inputNumber[10]) % 11) % 10)))
    {
        return true;
    }
    else
    {
        return false;
    }

    },"Введите корректный ИНН");

Комментарии к статье

аватарка пользователя
2014-01-24
Жорик

А как интегрировать такой плагин в wordpress???

аватарка пользователя
2014-01-24
Жорик

А как интегрировать такой плагин в wordpress???

аватарка пользователя
2014-03-17
Алексей

Подскажите, а как добавить проверку того, сколько чисел должно быть в ИНН - 10 или 12? То есть если есть ещё одно поле client_type (например, группа radio), где можно выбрать Организацию или ИП. Как добавить проверку значения этого поля в данный метод? Проверял с помощью clienttype = $("#clienttype").val(), но там кажется, это значение берётся только при загрузке страницы. То есть если при загрузке по умолчанию стоит Организация, но даже если меняю на ИП - всё равно длина определяется как 10.

Добавить комментарий к сниппету