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 [;)]
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;
}
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);
}
}