Ana Sayfa » C# Dersleri ve Örnek Kodlar

C# İle IBAN Numarası Doğrulama | C# Dersleri ve Örnek Kodlar

Yazı 14:20 - 6 Ekim 2011 tarihinde eklendi. |

csharp C# İle IBAN Numarası Doğrulama | C# Dersleri ve Örnek KodlarProjelerinizde, C# (C sharp)ile Türkiye standartlarına göre IBAN numarası doğrulaması yapmanız gerektiğinde kullanılabileceğiniz faydalı bir örnek.

Wikipedia’da yapılan IBAN tanımına göre IBAN doğrulaması ( TR ) aşağıdaki şekilde yapılabilir.

1. IBAN numarası uzunluğu 26 karakter olmalıdır.

2. IBAN numarası TR ile başlamalı ve devamındaki 24 karakter rakamlardan oluşmalıdır.

3. IBAN numarasının ilk 4 karakteri başından kesilip sonuna eklenir, her bir harf için iki rakam gelecek şekilde değiştirilir ( A=10, B=11, … ,R=27, … ,T=29, … ,Z=35 ), oluşan sayı başından başlanarak 7′şerlik parçalara bölünür ve  sırasıyla herbir parçanın 97 ile bölümünden kalan değer sonraki 7 haneli sayının başına eklenerek kalan sayı bulunmaya devam edilir, son olarak kalan sayı kontrol edilir. Eğer kalan sayı 1′e eşitse IBAN numarası geçerlidir.

Doğrulama işlemi C# ile aşağıdaki şekilde yapılır.

public static string CheckIban(string iban)
{
 iban = Regex.Replace(iban, @"\s", "").ToUpper();
 if (Regex.IsMatch(iban, @"\W"))
    return "IBAN kodu hatalı karakterler içeriyor!";
 if (!Regex.IsMatch(iban, @"^\D\D\d\d.+"))
    return "IBAN kodu hatalı!";
 if (Regex.IsMatch(iban, @"^\D\D00.+|^\D\D01.+|^\D\D99.+"))
    return "IBAN kodu hatalı!";
 string countryCode = iban.Substring(0, 2);
 if (iban.Length != 26)
    return "IBAN kodu 26 karakterden oluşmalıdır!";
 if (!Regex.IsMatch(iban.Remove(0, 4), @"\d{5}[a-zA-Z0-9]{17}"))
    return "IBAN kodu hatalı!";
 string modifiedIban = iban.ToUpper().Substring(4) + iban.Substring(0, 4);
 modifiedIban = Regex.Replace(modifiedIban, @"\D", m => ((int)m.Value[0] - 55).ToString());
 int remainer = 0;
 while (modifiedIban.Length >= 7)
 {
    remainer = int.Parse(remainer + modifiedIban.Substring(0, 7)) % 97;
    modifiedIban = modifiedIban.Substring(7);
 }
 remainer = int.Parse(remainer + modifiedIban) % 97;
 
 if (remainer != 1)
    return "IBAN kodu hatalı!";
 return "IBAN kodu geçerli!";
 }
}