Foros del Web » Programando para Internet » PHP »

validacion

Estas en el tema de validacion en el foro de PHP en Foros del Web. Hola Gente, estoy tratando de hacer una validacion pero no se me ocurre como hacerlo, es un input que debe respetar esta estructura: NNNNNLLXNNNNNNNL (N=Número, ...
  #1 (permalink)  
Antiguo 01/09/2014, 12:01
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
validacion

Hola Gente, estoy tratando de hacer una validacion pero no se me ocurre como hacerlo, es un input que debe respetar esta estructura:

NNNNNLLXNNNNNNNL

(N=Número, L=Letra, X=Letra o Número. Ej.: 13245BCJ1234567M)

la validacion puede ser javascript y/o php
  #2 (permalink)  
Antiguo 01/09/2014, 12:34
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: validacion

Hola, intentaste con preg_match ?
  #3 (permalink)  
Antiguo 01/09/2014, 12:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: validacion

si pero no se me ocurre la expresion regular
  #4 (permalink)  
Antiguo 01/09/2014, 13:03
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: validacion

Siempre va a ser con ese formato? Ni un caracter mas ni un caracter menos ?
  #5 (permalink)  
Antiguo 01/09/2014, 13:25
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: validacion

A ver si te sirve:

Código PHP:
Ver original
  1. $string = '13245BCJ1234567M';
  2. $regexp = '/^[\d]{5}[a-z]{2}[\w]{1}[\d]{7}[a-z]{1}$/is';
  3. echo preg_match($regexp, $string); //Imprime 1 porque se da la coincidencia

Sería ideal que leas sobre expresiones regulares para que en el futuro tú mismo construyas tus propias expresiones a la medida de tus necesidades. Por cierto, esto debiste de publicarlo en el foro de Expresiones Regulares.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 01/09/2014, 14:22
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: validacion

Hola Alexis, gracias por la ayuda, funciona ok hasta la exporte a javascript
pero sin la s al final.

Ahora me surje otra ExpReg
que es para este formato: NNNNNDJAINNNNNNL
(N=Número, L=Letra. Ej.:12345DJAI123456B)
el "DJAI" debe ser fijo

$string = '12345DJAI123456B';
$regexp = '/^[\d]{5}DJAI[\d]{6}[a-z]{1}$/is';
echo preg_match($regexp, $string);

algo asi me esta funcionando. pero me gustaria que me confirmes si está ok.
*****

Otra cosa me gustaria que me expliques esta porcion del codigo
[a-z]{2}[\w]{1} para validar las 3 letras del medio "BCJ"

es una combinacion?
o podia haber sido [a-z]{3} o [\w]{3}

$string = '13245BCJ1234567M';
$regexp = '/^[\d]{5}[a-z]{2}[\w]{1}[\d]{7}[a-z]{1}$/is';
  #7 (permalink)  
Antiguo 01/09/2014, 14:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: validacion

Una rápida explicación de la expresión regular:
  • [\d]{5}: Admite cinco y solo cinco números.
  • [a-z]{2}: Admite dos y solo dos letras.
  • [\w]{1}: Admite una y solo una letra o número.
  • [\d]{7}: Admite siete y solo siete números.
  • [a-z]{1}: Admite una y solo una letra.

La \d representa números. El rango a-z representa a todas las letras desde la A a la Z. La \w representa a números y letras, a la vez. Los números entre llaves indican el límite de elementos que pueden haber para lo que se especifique a su izquierda. Si hay un número, este representará al máximo y mínimo de elementos. Si deseas que haya un máximo y mínimo diferentes, tendrás que colocar a ambas cantidades separadas por una coma. El modificador de patrón i permite que se realice la búsqueda de coincidencias sin hacer distinción entre mayúsculas y minúsculas. Con respecto a lo segundo, como solo tienen que haber tres letras (no números ni cualquier otro caracter), con [a-z]{3} te basta.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 01/09/2014 a las 14:56 Razón: Palabra mal colocada
  #8 (permalink)  
Antiguo 01/09/2014, 15:11
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: validacion

Gracias por la expliacción,
siempre es un tema las EX pero esta vez si que me lo aclaraste

saludos!

Etiquetas: validacion
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 19:47.