Introduction
For those who need a small, compact, working out of the box IBAN Validator without all the bells and whistles.
Background
Very good article about IBAN validating here on CodeProject:
http://www.codeproject.com/Articles/55667/IBAN-Verification-in-C-Excel-Automation-Add-in-Wor
Using the code
Just put this static method wherever you need it and invoke it on the string containing the iban.
Retruns TRUE only on a valid IBAN account number.
public static bool ValidateBankAccount(string bankAccount)
{
bankAccount = bankAccount.ToUpper(); if (String.IsNullOrEmpty(bankAccount))
return false;
else if (System.Text.RegularExpressions.Regex.IsMatch(bankAccount, "^[A-Z0-9]"))
{
bankAccount = bankAccount.Replace(" ", String.Empty);
string bank =
bankAccount.Substring(4, bankAccount.Length - 4) + bankAccount.Substring(0, 4);
int asciiShift = 55;
StringBuilder sb = new StringBuilder();
foreach (char c in bank)
{
int v;
if (Char.IsLetter(c)) v = c - asciiShift;
else v = int.Parse(c.ToString());
sb.Append(v);
}
string checkSumString = sb.ToString();
int checksum = int.Parse(checkSumString.Substring(0, 1));
for (int i = 1; i < checkSumString.Length; i++)
{
int v = int.Parse(checkSumString.Substring(i, 1));
checksum *= 10;
checksum += v;
checksum %= 97;
}
return checksum == 1;
}
else
return false;
}