Validar estructura del RFC y E-MailEl RFC se divide en 2, personas fisicas y morales, la diferencia:
Morales: Se compone de 3 letras seguidas por 6 dígitos y 3 caracteres alfanumericos
Físicas: consta de 4 letras seguida por 6 dígitos y 3 caracteres alfanumericos
Para hacer una longitud de 12 y 13 caracteres, las primeras letras (3 y 4) pertenecen al nombre, los siguientes 6 dígitos son la fecha de nacimiento o fecha de creación para las morales, y los últimos 3 perteneces a la suma de valores pertenecientes al nombre.
Del donde se obtienen los valores no nos interesa, solo debemos validar el formato o estructura, si quisieran validar los valores obtenidos tendrían que pedir el nombre completo así como la fecha de nacimiento o creación, lo que se vuelve mas tedioso, por eso en este caso solo validaremos la estructura.
El siguiente método nos evalúa que la longitud y la estructura del RFC sean correctos:
------------------------------------------------------------------------------------------
- Código:
-
public int ValidarRFC(string cadena)
{
int i = 0;
bool confirmacion = true;
if (cadena.Length > 11 && cadena.Length < 14)
{
if (cadena.Length == 12)
{
cadena = "-" + cadena;
i = 1;
}
for (int j = i; j <= 3; j++)
{
if (!char.IsLetter(cadena[j]))
confirmacion = false;
}
for (int j = 4; j <= 9; j++)
{
if (!char.IsDigit(cadena[j]))
confirmacion = false;
}
for (int j = 9; j < 13; j++)
{
if (!char.IsLetterOrDigit(cadena[j]))
confirmacion = false;
}
if (!confirmacion)
{
MessageBox.Show("El formato del RFC no es valido.", "RFC", MessageBoxButtons.OK, MessageBoxIcon.Error);
return 1;
}
}
else
{
MessageBox.Show("La longitud del RFC no es valido.", "RFC", MessageBoxButtons.OK, MessageBoxIcon.Error);
return 1;
}
if (confirmacion)
return 0;
else
return 1;
}
------------------------------------------------------------------------------------------
Donde regresa 0 si no hubo errores y 1 si existe algún error.
Ahora les muestro el método para validar que el formato de una dirección de correo electrónico contenga el formato correcto:
------------------------------------------------------------------------------------------
- Código:
-
private bool Validador(String direccion)
{
String expresion;
expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
if (Regex.IsMatch(direccion, expresion))
{
if (Regex.Replace(direccion, expresion, String.Empty).Length == 0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
------------------------------------------------------------------------------------------
Regresa True si fue exitoso y False si no.
Espero que estos códigos les sean de ayuda, Saludos!!
Aca el link para descargar el ejemplo:
[Tienes que estar registrado y conectado para ver este vínculo]