Проверка правильности банковского счета возможна, если известен БИК банка.
Чтобы проверить контрольную суммы (контрольное число) в банковском счете, можно сделать следующее.
Заходим на сайт http://jsfiddle.net/
В область HTML вставляем следующий код, раскомментируем нужны строки, вписываем счет и бик. Затем нажимаем RUN:
<BODY>
<SCRIPT>
// Раскомментировать эти две строки для проверки корреспондентского счета
// result=fn_checkKS("Здесь вписать счет", "Здесь вписать БИК");
// alert(result);
// Раскомментировать эти две строки для проверки расчётного счета
// result=fn_checkRS("Здесь вписать счет", "Здесь вписать БИК");
// alert(result);
/*
Алгоритм проверки счёта с помощью БИКа банка:
1. Изменение счета с учетом БИКа(см ниже).
2. Вычисляется контрольная сумма со следующими весовыми коэффициентами: (7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1)
3. Вычисляется контрольное число как остаток от деления контрольной суммы на 10
4. Контрольное число сравнивается с нулём. В случае их равенства расчётного счёт считается правильным.
*/
//функция проверки правильности указания банковского счёта
function fn_bank_account(Str)
{
var result = false;
var Sum = 0;
//весовые коэффициенты
var v = [7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1];
for (var i = 0; i <= 22; i++)
{
//вычисляем контрольную сумму
Sum = Sum + ( Number(Str.charAt(i)) * v[i] ) % 10;
}
//сравниваем остаток от деления контрольной суммы на 10 с нулём
if(Sum % 10 == 0)
{
result = true;
}
return result;
}
/*
Проверка правильности указания корреспондентского счёта:
1. Для проверки контрольной суммы перед корреспондентским счётом добавляются "0" и два знака БИКа банка, начиная с пятого знака.
*/
function fn_checkKS(Account,BIK)
{
return fn_bank_account('0'+BIK.substr(4,2)+Account);
}
/*
Проверка правильности указания расчётного счёта:
1. Для проверки контрольной суммы перед расчётным счётом добавляются три последние цифры БИКа банка.
*/
function fn_checkRS(Account,BIK)
{
return fn_bank_account(BIK.substr(6,3)+Account);
}
</SCRIPT>
</BODY>