Mit diesem Snippet kann man eine IBAN überprüfen, ob die Checksumme bzw. Prüfsumme für diese IBAN korrekt ist.
Aufruf:
MyExtensions.IbanChecksumCheck("DE68 2105 0170 0012 3456 78");
oder
"DE68 2105 0170 0012 3456 78".IbanChecksumCheck();
public static class MyExtensions
{
/// <summary>
/// Bestimmt ob die Checksumme einer IBAN gültig ist
/// </summary>
/// <param name="iban">Der zu prüfende IBAN (z.B: "DE68 2105 0170 0012 3456 78")</param>
/// <returns><c>True</c>, wenn <paramref name="value"/> gültig ist. Andernfalls <c>False</c>.</returns>
public static bool IbanChecksumCheck(this string iban)
{
string ibanCleared = iban.ToUpper().Replace(" ","").Replace("-","");
string ibanSwapped = ibanCleared.Substring(4)+ibanCleared.Substring(0,4);
string sum = ibanSwapped.Aggregate("", (current, c) => current + (char.IsLetter(c) ? (c - 55).ToString() : c.ToString()));
var d = decimal.Parse(sum);
return ((d % 97) == 1);
}
}
1 Kommentare zum Snippet