-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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}*/)
Код | Функция проверки | Генератор |
---|---|---|
ИНН физического лица | isINN12 (str) |
randomINN12 () |
ИНН юридического лица | isINN10 (str) |
randomINN10 () |
КПП | isKPP (str) |
randomKPP () |
ОГРН | isOGRN13 (str) |
randomOGRN13 () |
ОГРНИП | isOGRN15 (str) |
randomOGRN15 () |
СНИЛС | isSNILS (str) |
randomSNILS ({format?}) |