Валидация и проверка контрольного числа расчетного счета
Описание
Расчетный счет состоит из 20 цифр:
- 1-3-я цифры — номер балансового счета первого порядка;
- 4-5-я цифры — номер балансового счета второго порядка;
- 6-8-я цифры — код валюты, соответствующий «Общероссийскому классификатору валют (ОКВ)» (который имеет прямое соответствие с международным стандартом ISO 4217), за исключением кода 810 (советский рубль, SUR), который был заменен на код 643 (российский рубль, RUB) после деноминации с 1 января 1998 г., но в структуре внутрироссийских счетов был оставлен прежним (810);
- 9-я цифра — контрольное число;
- 10-13-я цифры — код подразделения банка;
- 14-20-я цифры — внутренний номер (лицевого) счета в банке.
Маски ввода
- XXXXXXXXXXXXXXXXXXXX — маска ввода без разделителей.
- XXX.XX.XXX.X.XXXX.XXXXXXX — маска ввода с разделителями в виде точки.
- XXX-XX-XXX-X-XXXX-XXXXXXX — маска ввода с разделителями в виде дефиса.
Алгоритм проверки контрольного числа
- Для проверки контрольного числа требуется БИК.
- Составить 23-значное число из 3-х последних цифр БИК и расчетного счета.
- Вычислить сумму младших разрядов произведений цифр 23-значного числа на следующие коэффициенты — 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1.
- Если младший разряд полученной суммы равен 0, то расчетный счет считается верным.
Реализация на JavaScript
Исходный код доступен на GitHub по этой ссылке (функция validateRs).
Реализация на PHP
Исходный код доступен на GitHub по этой ссылке (метод validateRs).