Mega Code Archive

 
Categories / Delphi / Examples
 

How to validate an IBAN

Title: How to validate an IBAN function ChangeAlpha(input: string): string; // A - 10, B - 11, C - 12 ... var a: Char; begin Result := input; for a := 'A' to 'Z' do begin Result := StringReplace(Result, a, IntToStr(Ord(a) - 55), [rfReplaceAll]); end; end; function CalculateDigits(iban: string): Integer; var v, l: Integer; alpha: string; number: Longint; rest: Integer; begin iban := UpperCase(iban); if Pos('IBAN', iban) 0 then Delete(iban, Pos('IBAN', iban), 4); iban := iban + Copy(iban, 1, 4); Delete(iban, 1, 4); iban := ChangeAlpha(iban); v := 1; l := 9; rest := 0; alpha := ''; try while v = Length(iban) do begin if l Length(iban) then l := Length(iban); alpha := alpha + Copy(iban, v, l); number := StrToInt(alpha); rest := number mod 97; v := v + l; alpha := IntToStr(rest); l := 9 - Length(alpha); end; except rest := 0; end; Result := rest; end; function CheckIBAN(iban: string): Boolean; begin iban := StringReplace(iban, ' ', '', [rfReplaceAll]); if CalculateDigits(iban) = 1 then Result := True else Result := False; end;