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) - один из модулей node.js для проверки корректности ввода ИНН, КПП, ОГРН[ИП] и СНИЛС.
4
+
[ru-codes](https://github.com/do-/node-ru-codes/wiki) - один из модулей node.js для проверки корректности ввода ИНН, КПП, ОГРН[ИП] и СНИЛС, а также для генерации таких кодов в автоматических тестах.
5
5
6
6
Особенности:
7
7
* итог проверки представлен не результатом функции (который в случае успеха всегда `undefined`), а объектом Error с дополнительными полями;
@@ -23,8 +23,12 @@ const {
23
23
isOGRN13,
24
24
isOGRN15,
25
25
isSNILS,
26
-
// scalarProduct,
27
-
// digit,
26
+
randomINN10,
27
+
randomINN12,
28
+
randomKPP,
29
+
randomOGRN13,
30
+
randomOGRN15,
31
+
randomSNILS,
28
32
} =require ('ru-codes')
29
33
30
34
try {
@@ -40,22 +44,30 @@ catch (err) {
40
44
case'char':
41
45
// err.value -- символ не попавший в интервал '0'..'9'
42
46
// err.pos -- позиция этого символа (от 0)
47
+
case'format':
48
+
// err.pos -- позиция проблемного символа (для формата СНИЛС)
43
49
case'checksum':
44
50
// err.tobe -- контрольная сумма, вычисленная по основной части строки
45
51
// err.asis -- значение контрольной суммы, прочитанное непосредственно из строки
46
-
// err.phase -- для isINN12: номер контрольной суммы (1 или 2)
47
52
default:
48
53
throw err
49
54
}
50
55
}
56
+
57
+
consttestINN10=randomINN10 ()
58
+
consttestINN12=randomINN12 ()
59
+
consttestKPP=randomKPP ()
60
+
consttestOGRN13=randomOGRN13 ()
61
+
consttestOGRN15=randomOGRN15 ()
62
+
consttestSNILS=randomSNILS (/*{format: true}*/)
51
63
```
52
64
# API
53
-
## Основные функции
54
-
Каждая из функций, описанных в данном разделе, принимает на вход проверяемый код в виде строки (не числа или иного объекта), состоящей только из цифр от '0' до '9'. Если проверка проходит успешно, исполнение функции завершается без результата, иначе генерируется ошибка.
65
+
## Функции проверки
66
+
Каждая из функций`isXXXX`, описанных в данном разделе, принимает на вход проверяемый код в виде строки (не числа или иного объекта), состоящей только из цифр от '0' до '9'. Исключение составляет `isSNILS`, допускающая значения формата "XXX-XXX-XXX YY"..
55
67
56
-
Реализованы только проверки форматов и контрольных сумм, но не чего-либо, связанного с внешними источниками данных (наборы кодов регионов, отделений ФНС, ЕГРЮЛ и т. п.)
68
+
Если проверка проходит успешно, функция `isXXXX` возвращает `undefined`, иначе генерируется ошибка с дополнительными полями `code`, `type`, `tobe`, `asis`, `value` и `pos` — подробнее см. комментарии в примере выше.
57
69
58
-
Реализованы все проверки через вызовы нижеописанных `scalarProduct` и `digit`.
70
+
Реализованы только проверки форматов и контрольных сумм, но не чего-либо, связанного с внешними источниками данных (наборы кодов регионов, отделений ФНС, ЕГРЮЛ и т. п.)
59
71
60
72
### isINN10
61
73
Проверяет, может ли аргумент быть [ИНН](https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%89%D0%B8%D0%BA%D0%B0) юридического лица.
@@ -73,21 +85,29 @@ catch (err) {
73
85
Проверяет, может ли аргумент быть [ОГРНИП](https://ru.wikipedia.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%B3%D0%BE%D1%81%D1%83%D0%B4%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%B8%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B5%D0%B4%D0%BF%D1%80%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D0%B5%D0%BB%D1%8F).
74
86
75
87
### isSNILS
76
-
Проверяет, может ли аргумент быть [СНИЛС](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D1%85%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%B8%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BB%D0%B8%D1%86%D0%B5%D0%B2%D0%BE%D0%B3%D0%BE_%D1%81%D1%87%D1%91%D1%82%D0%B0). Как и в остальных функциях `is...`, на вход должна подаваться строка только из цифр, без дополнительных символов форматирования.
88
+
Проверяет, может ли аргумент быть [СНИЛС](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D1%85%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%B8%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BB%D0%B8%D1%86%D0%B5%D0%B2%D0%BE%D0%B3%D0%BE_%D1%81%D1%87%D1%91%D1%82%D0%B0).
89
+
90
+
Аргумент может быть либо в формате "XXX-XXX-XXX YY", либо только цифры.
91
+
92
+
## Генераторы случайных значений
93
+
Каждая из функций `randomXXXX`, описанных в данном разделе, возвращает случайную строку соответствующего формата с корректной контрольной суммой (кроме КПП, для которого контроль не определён).
Для заданной строки `str`, состоящей из только из цифр, и номера позиции `pos` возвращает число, соответствующее цифре, занимающей данную позицию (без создания промежуточной подстроки и вызова `parseInt`).
На старте `str` преобразуется в [буфер](https://nodejs.org/dist/latest/docs/api/buffer.html) -- и это единственный объект, создаваемый по ходу неаварийного исполнения функции: все остальные операции -- числовые.
0 commit comments