Валидация и проверка контрольного числа расчетного счета

На JavaScript
На PHP

Описание

Расчетный счет состоит из 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 — маска ввода с разделителями в виде дефиса.

Алгоритм проверки контрольного числа

  1. Для проверки контрольного числа требуется БИК.
  2. Составить 23-значное число из 3-х последних цифр БИК и расчетного счета.
  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.
  4. Если младший разряд полученной суммы равен 0, то расчетный счет считается верным.

Реализация на JavaScript

Исходный код доступен на GitHub по этой ссылке (функция validateRs).

Реализация на PHP

Исходный код доступен на GitHub по этой ссылке (метод validateRs).