Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2010, 17:55
Интересующийся
Отправить личное сообщение для kodermax Посмотреть профиль Найти все сообщения от kodermax
 
Регистрация: 07.08.2008
Сообщений: 21

Проверка правильности банковского счета
Помогите переписать на javascript проверка банковского счета.

function CheckSchet(const Value:String):Boolean;
const SchetMask: array [1..23] of byte = (7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1); // весовые коэффициенты
var I,Summa:Integer;
begin
  Result:=False;
  Summa:=0;
  for I:=1 to 23 do
   begin
    if not (Value[I] in ['0'..'9']) then
     exit;
    Summa:=Summa+(StrToInt(Value[I])*SchetMask[I]) mod 10; // вычисляем контрольную сумму
  end;
  Result:=(Summa mod 10 = 0); // проверяем остаток от деления контрольной суммы на 10 с нулём
end;


Проверка правильности указания корреспондентского счёта:

function CheckKS(const Value,BIK:String):Boolean;
begin
  Result:=(Length(Value)=20) and CheckSchet('0'+Copy(BIK,5,2)+Value);
end;


Проверка правильности указания расчётного счёта:

function CheckRS(const Value,BIK:String):Boolean;
begin
  Result:=(Length(Value)=20) and CheckSchet(Copy(BIK,Length(BIK)-2,3)+Value);
end;

Последний раз редактировалось kodermax, 04.10.2010 в 18:06.
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2010, 17:56
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Ты смеёшься что ли?
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2010, 18:07
Интересующийся
Отправить личное сообщение для kodermax Посмотреть профиль Найти все сообщения от kodermax
 
Регистрация: 07.08.2008
Сообщений: 21

я вот например не знаю как вот это реализовать
if not (Value[I] in ['0'..'9']) then
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2010, 18:10
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

kodermax,
Вы можете логику описать, я не знаю этого языка?
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2010, 18:15
Интересующийся
Отправить личное сообщение для kodermax Посмотреть профиль Найти все сообщения от kodermax
 
Регистрация: 07.08.2008
Сообщений: 21

это паскаль
логику могу

Цитата:
Проверка правильности указания корреспондентского счёта:

Алгоритм проверки корреспондентского счёта с помощью БИКа банка:
1. Для проверки контрольной суммы перед корреспондентским счётом добавляются "0" и два знака БИКа банка, начиная с пятого знака.
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. Контрольное число сравнивается с нулём. В случае их равенства корреспондентский счёт считается правильным.

Проверка правильности указания расчётного счёта:

Алгоритм проверки расчётного счёта с помощью БИКа банка:
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. Контрольное число сравнивается с нулём. В случае их равенства расчётного счёт считается правильным.
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2010, 18:28
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Похоже на Object Pascal

Последний раз редактировалось monolithed, 04.10.2010 в 18:30.
Ответить с цитированием
  #7 (permalink)  
Старый 05.10.2010, 09:56
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Я имею ввиду код переведи на слова, комментарии поставь
__________________
.
Ответить с цитированием
  #8 (permalink)  
Старый 18.04.2013, 10:17
Интересующийся
Отправить личное сообщение для тома Посмотреть профиль Найти все сообщения от тома
 
Регистрация: 23.11.2009
Сообщений: 29

алгоритм взят здесь
/*
Алгоритм проверки счёта с помощью БИКа банка:
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);
}
Ответить с цитированием
  #9 (permalink)  
Старый 18.04.2013, 10:40
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Хахах, ну и откопал же ты старьё)
У меня даже такое ощущение, что эти сообщения не я писал.
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск