Como validar IBAN español con C#

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 ;-)

Feb 27, 2025 - 20:57
 0
Como validar IBAN español con C#

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 ;-)