Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Validación De Email Y DNI??

Validación De Email Y DNI??
Artículo
Responder citando    Descargar mensaje  
Mensaje Validación De Email Y DNI?? 
 
Buenas!, siento abrir en un mismo post dos preguntas, pero creo que se parecen lo suficiente como para preguntar a la vez.... encontré ejemplo de validar que un textbox solo sean letras, solo numeros o ciertos numeros especiales, pero, no encontre ningun ejemplo sobre el DNI ni los Emails algun sitio donde echar un vistazo? ^^

Como siempre, Gracias!



 
CanihoJR - Ver perfil del usuario Enviar mensaje privado  
CanihoJR [ Domingo, 17 Enero 2010, 01:29 ]
 


Validación De Email Y DNI??
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Validación De Email Y DNI?? 
 
Hola.

Mira este post que dejó el usuario DEATH. Es para validar el R.U.T de Chile, pero creo que podría servirte para el DNI.
http://www.gambas-es.org/viewtopic.php?f=5&t=85&highlight=rut

Saludos



 
abarzuaf - Ver perfil del usuario Enviar mensaje privado  
abarzuaf [ Domingo, 17 Enero 2010, 02:16 ]
Responder citando    Descargar mensaje  
Mensaje Re: Validación De Email Y DNI?? 
 
Hola

Cuando hablas de los DNI (para los usuarios de fuera de España, Documento Nacional de Identidad), ¿te refieres a validar la secuencia numérica con la letra del final?

Si es así, creo que la rutina de validación es de dominio público, pero entiendo que sólo podría validarse una vez se hayan introducido todos los caracteres. Si bien mediante expresiones regulares se puede chequear que el formato sea adecuado, es decir, una cifra de 8 dígitos + una letra final, sólo si esta condición es verdadera al perder el foco el control podrías validar matemáticamente el DNI, mediante el evento _LostFocus().

Para validar un email correcto (si entendemos por correcto un identificador con un punto en medio o no, seguido de una @ y seguido de un dominio, que también puede contener uno o dos puntos), entonces es posible hacerlo también con expresiones regulares desde el manejador de evento _Change().

Las Regexp (expresiones regulares) son un mundo aparte y es una de las herramientas más potentes que existen para estos menesteres, ampliamente utilizadas en cualquier lenguaje, sobre todo Perl. Recomiendo su aprendizaje, porque te aseguro que enganchan.

Prueba esto para el tema del email:
PRIVATE FUNCTION chkEmail(email AS String) AS Boolean
  
    email = Trim(email)
    IF email THEN
        regx = NEW Regexp(email, "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$")    
        IF regx.Text THEN          
            RETURN TRUE
        ELSE
            RETURN FALSE      
        ENDIF
    ENDIF

END
 


Luego en el evento Change de tu textbox:

PUBLIC SUB txtEmail_Change()
  
    IF txtEmail.Text THEN    
        IF chkEmail(txtEmail.Text) THEN
          txtEmail.ForeColor = Color.Black        
        ELSE
         txtEmail.ForeColor = Color.Red        
        ENDIF    
    ENDIF    

END
 


Si la dirección de email es correcta, se verá el texto en negro, en caso contrario aparecerá en rojo.

------------------------------------------------------------------------------

Para el tema del DNI, cambia la cadena de la Regexp por algo así:

"^\\d{6,8}[A-Z]$"


Pero no olvides validar la letra correcta del DNI:

Debes coger sólo los dígitos (sin la letra) y calcular el MOD (módulo) de dividir entre 23

DIM testDNI as Integer
DIM letra as String

testDNI = val(textboxDNI.Text, len(textboxDNI.Text) - 1) MOD 23

    SELECT CASE testDNI
        CASE 0
            letra = "T"
        CASE 1
            letra = "R"
        '.......
    END SELECT


Así sucesivamente con todos los valores hasta 22

Luego has de comparar la letra introducida con la resultante del cálculo. En Google encontrarás las correspondencias del resto de la división con las letras.

Creo que tienes trabajo por hacer, comenta tus resultados.

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Domingo, 17 Enero 2010, 02:30 ]
Responder citando    Descargar mensaje  
Mensaje Re: Validación De Email Y DNI?? 
 
El DNI en España, desde hace algunos años lleva al final una letra que sirve de control para comprobar que el número del DNI se ha tecleado correctamente. Para comprobar un número de DNI, tan solo hay que dividir el número entre 23 y obtener el resto de la división. La letra que acompaña al número del DNI se obtiene de ese resto según la siguiente tabla:

00     T
01     R
02     W
03     A
04     G
05     M
06     Y
07     F
    
08     P
09     D
10     X
11     B
12     N
13     J
14     Z
15     S
    
16     Q
17     V
18     H
19     L
20     C
21     K
22     E

 

Ejemplo: Queremos saber si el DNI 12345678-Z se ha tecleado correctamente.

Dividimos 12345678 entre 23. El resto de la división es 14. La letra que le corresponde es Z, con que probablemente se ha tecleado bien.

NOTA:El NIF (número de identificación fiscal) sigue el mismo algoritmo

NOTA2: Buscado en Google. No soy el autor del texto.



 
Capa - Ver perfil del usuario Enviar mensaje privado  
Capa [ Domingo, 17 Enero 2010, 16:34 ]
Responder citando    Descargar mensaje  
Mensaje Re: Validación De Email Y DNI?? 
 
Gran aportación, capa, la verdad es que para casi cualquier aplicación de clientes, facturación, etc. hace falta.

Muchas gracias, campeón, como siempre genial.

Salu2, cracks.  



 
Ender - Ver perfil del usuario Enviar mensaje privado  
Ender [ Domingo, 17 Enero 2010, 19:26 ]
Responder citando    Descargar mensaje  
Mensaje Re: Validación De Email Y DNI?? 
 
Creo que después del :

Citar:
"Hola Mundo"


y del

Citar:
Escribe tu nombre:
Pepe
Hola Pepe


Este es el ejercicio más frecuente en clase, comprobar que el DNI sea correcto  



 
Capa - Ver perfil del usuario Enviar mensaje privado  
Capa [ Domingo, 17 Enero 2010, 19:56 ]
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno