You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ru-codes](https://github.com/do-/node-ru-codes/wiki) - один из модулей node.js для проверки корректности ввода ИНН, КПП, ОГРН[ИП] и СНИЛС, а также для генерации случайных кодов для организации тестирования.
4
+
[ru-codes](https://github.com/do-/node-ru-codes/wiki) - один из модулей node.js, где реализована проверка контрольных чисел ИНН, ОГРН[ИП], ОКПО, СНИЛС, банковских счетов и карт, а также рандомизация таких данных для нужд тестирования.
5
5
6
6
# Установка
7
7
@@ -13,6 +13,7 @@ npm install ru-codes
13
13
| Код | Функция проверки | Генератор | Реализация |
Примечание 1: Разрабатывать на основе контрольных чисел валидаторы и генераторы для БИК и корреспондентских счетов не имеет смысла, поскольку полный справочник этих значений содержит лишь порядка 1000 записей, а [его актуальная версия](https://cbr.ru/PSystem/payment_system/) всегда находится в открытом доступе.
26
+
Примечание 1: Для БИК и корреспондентских счетов разрабатывать валидаторы и генераторы на основе контрольных чисел не имеет смысла, поскольку полный справочник этих значений содержит лишь порядка 1000 записей, а [его актуальная версия](https://cbr.ru/PSystem/payment_system/) всегда находится в открытом доступе.
26
27
27
28
Примечание 2: Помимо 8- и 10-значных кодов [ОКПО](https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%89%D0%B5%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%80%D0%B5%D0%B4%D0%BF%D1%80%D0%B8%D1%8F%D1%82%D0%B8%D0%B9_%D0%B8_%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B9), предусмотрены также 14-значные: для обособленных подразделений. Однако там предметом валидации является только отрезок из первых 8 символов: ОКПО юридического лица в целом.
28
29
@@ -62,3 +63,13 @@ catch (err) {
62
63
}
63
64
}
64
65
```
66
+
67
+
API в целом — функционально-ориентированный, но при желании можно использовать напрямую классы, на базе которых реализованы верхнеуровневые функции. Ссылки на документацию по таким классам приведены в правом столбце таблицы.
68
+
69
+
На каждый код `XXX` API содержит пару функций: проверки `isXXX` и генерации `randomXXX`.
70
+
71
+
Функции проверки ведут себя в стиле [assert](https://nodejs.org/docs/latest/api/assert.html): то есть в норме не возвращают значения, а информацию о нарушениях выбрасывают в виде ошибок. Ошибки эти имеют дополнительные поля — см. пример выше.
72
+
73
+
Практически для всех кодов единственным аргументом `isXXX` является проверяемая строка, а `randomXXX` — набор опций, где общая для всех опция только `pre`. Исключения описаны по месту.
74
+
75
+
Все коды и префиксы должны быть представлены только строками. Попытка проверить, например, ИНН, заданный в виде значения типа [Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) или [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) — приведёт к ошибке даже для значения с корректной контрольной суммой.
0 commit comments