· NET  · Lectura en 3 min

C# Validar IBAN con .NET

Aprende como validar un DNI con C# y un paquete Nuget de forma rápida

Aprende como validar un DNI con C# y un paquete Nuget de forma rápida

Al principio pensé en explicar en este artículo cómo se genera el dígito de control del IBAN y hacer un algoritmo para validar el IBAN con .NET. La verdad es que validar un IBAN no es tan fácil como validar el DNI así que decidí plantear el artículo de otra forma y utilizar un paquete Nuget para realizar una verificación rápida.

Un IBAN consta de 2 letras que son el código del país, 2 dígitos de control y hasta 30 dígitos que varían según el país, ya que cada uno adapto su número de cuenta viejo al nuevo formato IBAN.

Por ejemplo, en España teníamos el código de cuenta bancaría (CCC) y al ser convertido al IBAN se compone de dos letras «ES», los dos dígitos de control y 20 dígitos que corresponden 4 al código del banco, 4 al código de sucursal, 2 un código de control interno de España y por último 10 dígitos que corresponden al número de cuenta.

Cómo validar IBAN con .NET

Para realizar esta verificación utilizaremos el paquete Iban.Net así que lo instalamos en el proyecto que queramos validar el IBAN.

Paquete Nuget Validar IBAN

Una vez instalado el paquete podremos realizar cualquier validación de IBAN así:

IIbanValidator validator = new IbanValidator();
ValidationResult validationResult = validator.Validate("NL91 ABNA 0417 1643 00");
if (validationResult.IsValid)
{
    // El IBAN es valido
}

Personalmente prefiero realizar una función estática para que cada vez que tenga que validar un IBAN no tener que instanciar la clase, para ello he creado la función CheckIban que devuelve un boolean con un true en caso de que el IBAN sea válido y un false en caso de que no.

Código C# para validar IBAN

A continuación te dejo un ejemplo de una aplicación de escritorio que cogería el IBAN de un Textbox:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        //Obtenemos el Iban de un texto y eliminamos espacios en blanco
        string iban = txtIban.Text.Replace(" ", "");

        //Utilizamos nuestra función 
        if (CheckIban(iban))
        {
            //Iban valido
            MessageBox.Show("Iban Valido");
        }
        else
        {
            //Iban invalido
            MessageBox.Show("Iban incorrecto");
        }
    }

    private static bool CheckIban(string iban)
    {
        //Funcio para calcular si es valido el iban. 

        IIbanValidator validator = new IbanValidator();
        var validationResult = validator.Validate(iban);

        return validationResult.IsValid;
    }

Para acabar me gustaría añadir un pequeño detalle, el usuario puede introducirte caracteres que hagan que el IBAN no sea válido. El campo donde se introduzca el IBAN debería de impedir escribir cualquier otra cosa que no sean letras y números, puedes permitir espacios si luego los eliminas como hago yo en el código de ejemplo.

    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »
    C#: Cómo saber si un número es primo

    C#: Cómo saber si un número es primo

    Los números primos son muy interesantes para la criptografía. ¿Sabías que hoy en día todavía se siguen buscando números primos? El último descubierto tenía más de 23 millones de cifras…