Foros del Web » Programando para Internet » PHP »

Expresion regular DNI

Estas en el tema de Expresion regular DNI en el foro de PHP en Foros del Web. estoy intentando validar un dni que contenga 8 numeros y una letra ya sea mayuscula o minuscula, pero me sigue entrando si solo pongo numeros, ...
  #1 (permalink)  
Antiguo 01/02/2009, 12:59
 
Fecha de Ingreso: julio-2008
Mensajes: 7
Antigüedad: 15 años, 9 meses
Puntos: 0
Expresion regular DNI

estoy intentando validar un dni que contenga 8 numeros y una letra ya sea mayuscula o minuscula, pero me sigue entrando si solo pongo numeros, la linia que uso es esta.

ereg("^\d{1,8}$",$dni)
  #2 (permalink)  
Antiguo 01/02/2009, 13:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Expresion regular DNI

Cita:
ereg("^\d{1,8}$",$dni)
En ninguna parte de tu expresion regular validas que quieres una letra.
Tienes que agregarle el rango de letras a la expresion regular.
[a-zA-Z]
  #3 (permalink)  
Antiguo 01/02/2009, 16:08
 
Fecha de Ingreso: septiembre-2004
Ubicación: Cordoba
Mensajes: 70
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Expresion regular DNI

Tambien puede ser asi...

Código PHP:
$dni="A12345678";
$cantidad_alfanum=strlen($dni);
if (
ctype_alnum($dni) && $cantidad_alfanum==9){
        echo 
"<p><b>DNI VALIDO</b></p>";
}else{
    echo 
"<p><b>DNI NO VALIDO</b></p>"    ;

__________________
HACER LA GUERRA PARA DEFENDER LA PAZ, ES COMO HACER UNA ORGIA PARA DEFENDER LA VIRGINIDAD
  #4 (permalink)  
Antiguo 01/02/2009, 17:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 48
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Expresion regular DNI

8 digitos

\d{8}

1 letra

[a-zA-Z]


Unido a la obligacion del principio y final de cadena

^\d{8}[a-zA-Z]$

Si también quieres que la letra sea la correcta mira este enlace, es de delphi pero la funcion creo que queda clara:

http://www.clubdelphi.com/trucos/index.php?id=83
  #5 (permalink)  
Antiguo 02/02/2009, 12:54
 
Fecha de Ingreso: julio-2008
Mensajes: 7
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Expresion regular DNI

gracias por la ayuda

he probado la ultima que me has dicho pero no me pasa

eregi("^\d{8}[a-zA-Z]$",$dni)

he provado solo con [a-zA-Z]$ y si que me lo coge, pero si solo paso un numero y pongo \d no me lo coge. Creo que hay algun problema con la parte ^\d{8} quizas se tenga que escapar algun caracter?
  #6 (permalink)  
Antiguo 02/02/2009, 14:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Expresion regular DNI

Cita:
ereg("^\d{1,8}$",$dni)
Es que existe vivo alguien con DNI 1,2,..... 9 ......... 1000 ?
__________________
Salu2!
  #7 (permalink)  
Antiguo 04/02/2009, 06:46
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Expresion regular DNI

POrque va [a-zA-Z] ?? si el DNI son numeros nomas ... ??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:14.