Foros del Web » Programación para mayores de 30 ;) » .NET »

Expresion de Validacion DNI

Estas en el tema de Expresion de Validacion DNI en el foro de .NET en Foros del Web. Buenos días, Alguien puede echarme una manita ofreciéndome una expresion para validar un DNI mediante un RegularExpressionValidator. Tiene un formato de 8 numeros + 1 ...
  #1 (permalink)  
Antiguo 08/06/2006, 05:11
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Expresion de Validacion DNI

Buenos días,
Alguien puede echarme una manita ofreciéndome una expresion para validar un DNI mediante un RegularExpressionValidator.
Tiene un formato de 8 numeros + 1 Letra Mayúscula ( Ej.: 12345678E )

Disculpen la pregunta tan directa, pero he estado buscando y no encontré ninguna expresión que se le pareciera. Intenté meterme en el tema un poco para intentar construirmela yo mismo, pero ahora mismo me va fatal de tiempo, y no parece algo rápido de entender esto de las expresiones...

Y otra al respecto, ya que estoy. Podría construirse una expresion que valide tanto esto (12345678E) como esto (E12345678) ?
Pero claro, esto no vale (E12345678E) , o sea, la letra, o delante o detrás, no vale en las dos ubicaciones.

Gracias por vuestra ayuda.
Saludos a todos!
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 09/06/2006, 15:12
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Creo que la expresión regular para validar 12345678E ó E23456782 sería algo como:

^(([A-Z])|\d)\d{7}(?(2)\d|[A-Z])$

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 12/06/2006, 03:01
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Hola xknown,
he probado la expresion que me facilitas, pero no me acepta esas combinaciones. Yo lo he puesto así en el RegularExpressionValidator:
Código:
... ValidationExpression="^(([A-Z])|\d)\d{7}(?(2)\d|[A-Z])$" ...
Pero no me coje nada de lo que le meto.

No coje este: 12345678
Tampoco este: 12345678E
Tampoco este: E12345678
Y tampoco este : E12345678E

Pensé que igual había un error en la expresión, y ese {7} debería ser un {8}, porqué son 8 numeros. Pero no, lo cambié, y sigue sin validar la expresion.

Gracias por la ayuda.
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 12/06/2006, 11:20
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por moNTeZIon
Pero no me coje nada de lo que le meto.

No coje este: 12345678
Tampoco este: 12345678E
Tampoco este: E12345678
Y tampoco este : E12345678E
Prueba con ésta:

Cita:
^(([A-Z]\d{8})|\d{8}|(\d{8}[A-Z])|([A-Z]\d{8}[A-Z]))$
seguramente se podría hacer mas pequeña pero fue lo primero que se me ocurrió..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 12/06/2006, 13:11
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Puse esa expresión debido a esto:
Cita:
Tiene un formato de 8 numeros + 1 Letra Mayúscula ( Ej.: 12345678E )
Una alternativa a la propuesta de RootK:
^(([A-Z])|\d)?\d{8}(\d|[A-Z])?$

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #6 (permalink)  
Antiguo 13/06/2006, 02:54
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
OK. Primero de todo gracias por vuestra ayudita.
Creo que ha habido un malentendido.
xknown, lo que comentas no me cuadra con la expresion. La siguiente expresion:
Código:
^(([A-Z])|\d)\d{7}(?(2)\d|[A-Z])$
no hace el match con esto: 12345678E

La que poneis mas adelante, esa si. Tanto la de RootK como la resumida de xknown. Pero el malentendido fue, que necesito que no valide ni esto: E12345678E ni esto: 12345678
Como dije, son 8 numeros + 1 Letra Mayuscula. La Letra debe aparecer obligatoriamente. Puede aparecer delante de los 8 numeros, o detrás. No en medio. Y tampoco vale una delante y una detrás. Solo una letra.
La última expresion que me dieron acepta todas estas combinaciones también. Se podría ajustar un poco más a esto que comento? o esto es lo máximo que se puede conseguir con expresiones...
Espero haberme explicado mejor.
Muchas gracias!
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 13/06/2006, 19:10
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Pero el malentendido fue, que necesito que no valide ni esto: E12345678E ni esto: 12345678
si esas cadenas las das como inválidas solo basta con quitar la expresion regular de esas validaciones... te quedaría entonces así:

Cita:
^(([A-Z]\d{8})|(\d{8}[A-Z]))$
  #8 (permalink)  
Antiguo 25/08/2006, 02:40
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Hola gente,
Finalmente he ocupado este útimo que me ofreces RootK, y me funiona muy bien.
Gracias!
__________________
..:: moNTeZIon ::..
  #9 (permalink)  
Antiguo 25/08/2006, 02:46
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
La convertí en esto para que me aceptara las minúsculas también:
Cita:
^((([A-Z]|[a-z])\d{8})|(\d{8}([A-Z]|[a-z])))$
Primero prové con [A-z] pero hay unos caracteres entre la "Z" y la "a" que no son letras, como el guión bajo, y alguno más, y no me servía, con lo que al final, lo dejé con ([A-Z]|[a-z]), como ven en el ejemplo, y funca muy bien.
Saludos.
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 16/01/2008, 05:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Expresion de Validacion DNI

Hola he visto esta expresion regular y la verdad es que es la kando buscando para validar mi dni en mi formulario lo malo esk yo la pongo y no me funciona, el codigo khe metido en la funcion es:
function compruebadni(dni) {
var res = false;
var expr = new RegExp ("^(([A-Z]\d{8})|(\d{8}[A-Z]))$");
var p = expr.exec(dni);
if (p)
{
res = true;
}
return (res);
}
y me sigue saltando el error cuando pongo un dni tal 12345678M o m. Alguien sabe si pongo algo mal en el codigo????

Muchas gracias
  #11 (permalink)  
Antiguo 16/01/2008, 05:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Expresion de Validacion DNI

vale me acabo de dar cuenta kes el res kesta al reves. jje todo solucionado.
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 09:16.