C#: Validar IBAN con .NET fácilmente

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.

C# Validar IBAN .NET

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) { // .. }
Lenguaje del código: C# (cs)

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; }
Lenguaje del código: C# (cs)

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.

Deja un comentario