Skip to content
do- edited this page Sep 18, 2024 · 58 revisions

ru-codes - один из модулей node.js для проверки корректности ввода ИНН, КПП, ОГРН[ИП] и СНИЛС, а также для генерации таких кодов в автоматических тестах.

Особенности:

  • итог проверки представлен не результатом функции (который в случае успеха всегда undefined), а объектом Error с дополнительными полями;
  • в реализации не используются ни регулярные выражения, ни текстовые операции с подстроками.

Установка

npm install ru-codes

Использование

const {
    isINN10,
    isINN12,
    isKPP,
    isOGRN13,
    isOGRN15,
    isSNILS,
    randomINN10,
    randomINN12,
    randomKPP,
    randomOGRN13,
    randomOGRN15,
    randomSNILS,
} = require ('ru-codes')

try {
  isSNILS (s)
}
catch (err) {
  switch (err.code) {
    case 'type':
      // err.type -- это typeof аргумента, оказавшийся не string
    case 'length':
      // err.tobe -- требуемая длина строки
      // err.asis -- реальная длина строки
    case 'char':
      // err.value -- символ не попавший в интервал '0'..'9'
      // err.pos -- позиция этого символа (от 0)
    case 'format':
      // err.pos -- позиция проблемного символа (для формата СНИЛС)
    case 'checksum': 
      // err.tobe -- контрольная сумма, вычисленная по основной части строки
      // err.asis -- значение контрольной суммы, прочитанное непосредственно из строки
    default:
      throw err
  }
}

const testINN10 = randomINN10 ()
const testINN12 = randomINN12 ()
const testKPP = randomKPP ()
const testOGRN13 = randomOGRN13 ()
const testOGRN15 = randomOGRN15 ()
const testSNILS = randomSNILS (/*{format: true}*/)

API

Код Функция проверки Генератор
ИНН физического лица isINN12 (str) randomINN12 ()
ИНН юридического лица isINN10 (str) randomINN10 ()
КПП isKPP (str) randomKPP ()
ОГРН isOGRN13 (str) randomOGRN13 ()
ОГРНИП isOGRN15 (str) randomOGRN15 ()
СНИЛС isSNILS (str) randomSNILS ({format?})
Clone this wiki locally