Tip/Trick: Validar un DNI

Esta es una función bastante útil, sirve para validar la letra de un DNI. Pasandole como parámetro el DNI completo, letra incluída.

        bool validarDNI(string dni)
        {
                if (new Regex("[0-9]{8}[A-Za-z]").Match(dni).Success)
		{
                    return ("TRWAGMYFPDXBNJZSQVHLCKE"[(int)long.Parse(dni.Substring(0, 8)) % 23].ToString() ==
                    dni[8].ToString().ToUpper());
            	}
		else
		{
            	    return false;
		}
        }

Espero que os sea útil [;)]

2 thoughts on “Tip/Trick: Validar un DNI

  1. bool validarDNI(string dni)
    {
    return (new Regex(«[0-9]{8}[A-Za-z]»).Match(dni).Success)?
    («TRWAGMYFPDXBNJZSQVHLCKE»[(int)long.Parse(dni.Substring(0, 8)) % 23].ToString() ==
    dni.ToUpper()):false;

    }

  2. private void dniMaskedTextBox_Validating(object sender, CancelEventArgs e)
    {

    string Letras = «TRWAGMYFPDXBNJZSQVHLCKE»;
    int numNif;
    string nif = dniMaskedTextBox.Text;
    bool Valido = true;
    if (!System.Text.RegularExpressions.Regex.IsMatch(nif, @»^d{8}[» + Letras + «]$»))
    Valido = false;
    else
    {
    numNif = Int32.Parse(nif.Substring(0, nif.Length – 1));
    if (!(nif[8] == Letras[numNif % 23]))
    Valido = false;
    }

    if (!Valido)
    {
    e.Cancel = true;
    errorProvider1.SetError(dniMaskedTextBox, «La letra del DNI no es correcta»);
    }
    else
    {
    e.Cancel = false;
    errorProvider1.SetError(dniMaskedTextBox, string.Empty);
    }

    }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *