Hola, en este pequeño algoritmo, os defino como se escribe en C# una función para validar si un número de cuenta IBAN español, pasado como argumento, es válido o no:
public int ValidaIBAN(string iban)
{
if (string.IsNullOrWhiteSpace(iban))
return 0;
// Eliminar espacios y convertir a mayúsculas
iban = iban.Replace(" ", "").ToUpper();
// Verificar longitud exacta de IBAN español (24 caracteres)
if (iban.Length != 24)
return 0;
// Extraer los 20 dígitos del BBAN (sin los 4 caracteres iniciales "ESXX")
string bban = iban.Substring(4);
// Código de España "ES" convertido a números = "1428"
string numericIban = bban + "1428" + iban.Substring(2, 2); // Mueve los dígitos de control al final
Console.WriteLine(numericIban);
// Convertir a BigInteger y calcular el módulo 97
BigInteger ibanNumber = BigInteger.Parse(numericIban);
if (ibanNumber % 97 == 1)
return 1;
else
return 0;
}
Es una cosa muy sencilla, con la que llevo peleando durante un rato. Espero que a alguien le pueda servir ;-)
Top comments (0)