Click here to Skip to main content
15,868,016 members
Articles / Programming Languages / C#
Tip/Trick

IBAN Validator

Rate me:
Please Sign up or sign in to vote.
5.00/5 (6 votes)
22 May 2014CPOL 70.7K   13   12
Quick&Dirty static method for IBAN code validation

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.

C#
public static bool ValidateBankAccount(string bankAccount)
        { 
            bankAccount = bankAccount.ToUpper(); //IN ORDER TO COPE WITH THE REGEX BELOW
            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;
        } 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Spain Spain
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
BugThe regular expression doesn't work as expected. Pin
VahanHakobyan27-Mar-20 3:49
VahanHakobyan27-Mar-20 3:49 
SuggestionNice! Pin
beepoman5-Mar-19 23:04
beepoman5-Mar-19 23:04 
PraiseThanks for all the comments Pin
sirol8130-Jan-19 1:43
sirol8130-Jan-19 1:43 
QuestionExtremely simple validation number calculation for digit-only account numbers Pin
4Bytes16-Dec-18 11:11
4Bytes16-Dec-18 11:11 
QuestionISO20022 Pin
proximuss30-Apr-18 5:06
proximuss30-Apr-18 5:06 
QuestionGreat! I made it simpler... Pin
Ton_B16-Mar-17 5:29
Ton_B16-Mar-17 5:29 
AnswerRe: Great! I made it simpler... Pin
Yves Goergen7-Jul-20 10:51
Yves Goergen7-Jul-20 10:51 
GeneralMy vote of 5 Pin
Prasad Khandekar22-May-14 4:01
professionalPrasad Khandekar22-May-14 4:01 
QuestionGreat but Pin
Menci Lucio21-May-14 22:34
professionalMenci Lucio21-May-14 22:34 
AnswerRe: Great but Pin
sirol8122-May-14 2:30
sirol8122-May-14 2:30 
GeneralRe: Great but Pin
Karri Kalpio25-May-14 20:54
Karri Kalpio25-May-14 20:54 
GeneralMy vote of 5 Pin
Volynsky Alex21-May-14 9:54
professionalVolynsky Alex21-May-14 9:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.