Documentation
¶
Overview ¶
Package snils предоставляет функции для нормализации и валидации страхового номера индивидуального лицевого счета (СНИЛС) Российской Федерации.
Пакет реализует:
- приведение СНИЛС к нормализованному виду (удаление пробелов и разделителей);
- проверку длины и допустимых символов;
- проверку на запрещенные значения;
- проверку контрольного числа по установленному алгоритму.
Нормализованный СНИЛС представляет собой строку из 11 цифр без пробелов и разделителей (например, "11223344595").
Основные функции:
- Normalize — удаляет пробелы и разделители из строки СНИЛС;
- Validate — выполняет полную проверку нормализованного СНИЛС.
Пример использования:
s := snils.Normalize("112-233-445 95")
if err := snils.Validate(s); err != nil {
// обработка ошибки
}
if err := snils.Validate("11223344595"); err == nil {
// СНИЛС валиден
}
Проверка контрольного числа выполняется только для номеров, превышающих установленный порог (см. MinNumberForChecksum).
Index ¶
Constants ¶
const ( // SNILSLength определяет длину нормализованного СНИЛС. // // Нормализованный СНИЛС содержит только 11 цифр без пробелов // и разделителей. SNILSLength = 11 // ForbiddenSNILS содержит запрещенное значение СНИЛС. // // Значение из одиннадцати нулей не считается корректным СНИЛС. ForbiddenSNILS = "00000000000" // MinNumberForChecksum определяет минимальный номер СНИЛС, // начиная с которого применяется проверка контрольного числа. // // Для номеров больше этого значения контрольное число должно // соответствовать установленному алгоритму расчета. MinNumberForChecksum = 1001998 )
Variables ¶
var ( // ErrInvalidLength возвращается, если длина СНИЛС не равна SNILSLength. ErrInvalidLength = errors.New("неверная длина СНИЛС") // ErrInvalidContent возвращается, если СНИЛС содержит символы, // отличные от цифр. ErrInvalidContent = errors.New("СНИЛС должен содержать только цифры") // ErrForbiddenSNILS возвращается, если СНИЛС равен запрещённому значению. ErrForbiddenSNILS = errors.New("запрещенное значение СНИЛС") // ErrInvalidChecksum возвращается, если контрольное число СНИЛС // не соответствует вычисленному значению. ErrInvalidChecksum = errors.New("неверная контрольная сумма СНИЛС") )
Functions ¶
func Normalize ¶
Normalize приводит СНИЛС к нормализованному виду.
Функция удаляет пробелы и допустимые разделители, возвращая строку, состоящую только из символов исходного ввода, не являющихся пробелами или разделителями.
Normalize не выполняет валидацию содержимого СНИЛС.
func Validate ¶
Validate выполняет полную проверку нормализованного СНИЛС.
Ожидается, что входная строка уже приведена к нормализованному виду (например, с помощью функции Normalize) и содержит только цифры.
Проверки выполняются в следующем порядке:
- длина СНИЛС;
- допустимость символов (только цифры);
- проверка на запрещенное значение;
- проверка контрольного числа (если применимо);
Возвращает одну из ошибок:
- ErrInvalidLength;
- ErrInvalidContent;
- ErrForbiddenSNILS;
- ErrInvalidChecksum.
При успешной валидации возвращает nil.
Types ¶
This section is empty.