· Andrés Ledo · 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#: Obtener directorio de ejecución

    C#: Obtener directorio de ejecución

    Generar una serie Fibonacci con C# es un ejercicio habitual en las escuelas o en pruebas de acceso a un trabajo. Así que vamos a resolver este...

    C#: ¿Qué es entity Framework?

    C#: ¿Qué es entity Framework?

    Entity Framework (EF) es una poderosa herramienta de mapeo objeto-relacional (ORM) desarrollada por Microsoft. Su propósito principal es simplificar...

    ¿Qué es un software standalone?

    ¿Qué es un software standalone?

    ¿Sabes qué es un software standalone y por qué es importante conocerlo? En este artículo te explicamos todo lo que necesitas saber sobre este tipo de...