validIinChecksum
@mineflow/shared-validation / validIinChecksum
Function: validIinChecksum()
function validIinChecksum(iin: string): boolean;
Defined in: iin-checksum.ts:54
Проверяет контрольную цифру ИИН РК по алгоритму НК РК.
Сначала отсекает структурно невалидный ввод (не строка, не ровно 12 символов,
наличие нецифровых символов). Затем берёт первые 11 цифр и считает
sum(d_i * w1_i) mod 11:
- если результат
< 10— это и есть контрольная цифра, сравнивается с 12-й; - если результат
== 10— пересчёт по второму набору весов w2; - если и w2 даёт
>= 10— контрольной цифры нет, ИИН невалиден.
Функция чистая и frontend-safe: не бросает исключений, не нормализует ввод
(пробелы/дефисы/буквы дают false) и возвращает false на любой мусор.
Это UX-слой формы, а не замена backend-валидации.
Parameters
| Parameter | Type | Description |
|---|---|---|
iin | string | Строка-кандидат ИИН (ожидается ровно 12 цифр без разделителей). |
Returns
boolean
true, если контрольная цифра сходится; иначе false.
Example
validIinChecksum('900101350510'); // true | false по контрольной цифре
validIinChecksum('900101350510'.replace(/\D/g, '')); // нормализуй ввод заранее