Foros del Web » Programando para Internet » Javascript »

Ayuda! problema en validaciones (hora, codigo de operacion)

Estas en el tema de Ayuda! problema en validaciones (hora, codigo de operacion) en el foro de Javascript en Foros del Web. Hola, agradecería que alguein por favor pueda ayudarme estoy haciendo un formulario para inscripción de usuarios, pero tengo problemas lo siguiente: 1º Validar la Hora: ...
  #1 (permalink)  
Antiguo 03/02/2010, 11:10
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Ayuda! problema en validaciones (hora, codigo de operacion)

Hola, agradecería que alguein por favor pueda ayudarme estoy haciendo un formulario para inscripción de usuarios, pero tengo problemas lo siguiente:

1º Validar la Hora:

Quiero que la hora salga del siguiente modo 23:45 (por decir un ejemplo), buscando en la web encontré este código, borrando algunas cosillas me quedó así:

En el script
Código:
function CheckTime(str)
{
hora=str.value
if (hora=='') {return}
if (hora.length!=5) {alert("Introducir HH:MM");return}
a=hora.charAt(0) //<=2
b=hora.charAt(1) //<4
c=hora.charAt(2) //:
d=hora.charAt(3) //<=5
if ((a==2 && b>3) || (a>2)) {alert("El valor que introdujo en la Hora no corresponde, introduzca un digito entre 00 y 23");return}
if (d>5) {alert("El valor que introdujo en los minutos no corresponde, introduzca un digito entre 00 y 59");return}
if (c!=':') {alert("Introduzca el caracter ':' para separar la hora y los minutos");return}
}
en mi php así:
Código:
<input name="hora" type="text" id="hora"  size=35 maxlength=5 onBlur="CheckTime(this)" >
El lío con este código es que también acepta letras claro que así: aa:gg, quiero que solo me acepte números y el ":", claro está.

No sé si me dejo entender....

2º validar Código de operación
Los usuarios que se inscriban en mi web, tienen que colocar un código, que tiene necesariamente 7 dígitos, y debe comenzar con "P" o "p", seguido de 6 números...
Ejm: P012345

Gracias por anticipado a quien pueda ayudarme...
  #2 (permalink)  
Antiguo 03/02/2010, 11:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

Yo te sugiero que leas sobre Expresiones Regulares.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/02/2010, 11:25
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

Y si en vez de una caja de texto pones un menu desplegable con los valores numericos de las horas? Y los minutos los pones cada 10 o 15 que se yo...
__________________
HV Studio
Diseño y desarrollo web
  #4 (permalink)  
Antiguo 03/02/2010, 15:10
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

hola!!, claro, puede ser con expresiones regulares, pero es que justo eso es lo que no manejo muy bien... ahora si coloco /d... solo me va a acetar números y el ":" no... o en todo caso si coloco otro if... con el patron donde iria?... y cómo... estoy algo perdida.... :S

Ah!... he leido que las expresiones regulares son poco recomendables por la cantidad de recursos que consume.... habrá otra forma de hacerlo??... y cómo sería...

Please... Ayuda!!...
  #5 (permalink)  
Antiguo 03/02/2010, 16:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

Cita:
Ah!... he leido que las expresiones regulares son poco recomendables por la cantidad de recursos que consume.... habrá otra forma de hacerlo??... y cómo sería...
en mi opinion personal, quien dijo eso no tiene una base solida como para afirmarlo. o bien depende donde es empleado las expresiones regulares. cabe mencionar que las expresiones regulares no es solo cosa de programacion, tambien lo podemos encontrar en editores de textos como Notepad++.

ahora bien, en mi experiencia las expresiones regulares son bien lentas (quizas por la cantidad de recursos que consume) en editores de textos. sin embargo, en programacion es una fiera. yo prefiero usar mil veces expresiones regulares que funciones propias para hacer practicamente cualquier cosa relacionada a los strings: buscar, reemplazar, validar. primero, porque el codigo es mucho mas limpio y bastante reducido. y segundo, porque las expresiones regulares son considerablemente mas rapida que las funciones propias.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 03/02/2010, 16:44
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

Gracias zerokilled, entonces me quedo con las expresiones regulares ahora cómo puedo hacer funcionar mi script ??... :S....

que sólo me acepte números y ":"(ejm: 15:40), porque en el código que coloqué arriba también me acepta letras (ejm: aa:bb)

Gracias a quien pueda ayudarme...
  #7 (permalink)  
Antiguo 03/02/2010, 17:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

el hecho de que te acepta alfanumericos se debe a que no estas limpiando el contenido del campo. cuando digo limpiar me refiero a cualquier forma de obligar al usuario de introducir un valor correcto. por ejemplo, vaciando el contenido del campo asignando un string vacio a la propiedad value. como ya se te ha sugerido, conviene mejor que leas acerca de las expresiones regulares. un material por el que puedes comenzar, http://javascript.espaciolatino.com/...pregulares.htm, y puedes encontrar muchos mas con los terminos javascript expresiones regulares.

solo con el proposito de ponerte en el camino para que puedas continuar. un ejemplo de una expresion regular para validar el campo de la hora.
Código:
var validHour = /^([01]?\d|2[0-3]):[0-5]\d$/;

// ejemplo de uso;
var hour = "20:53";
alert(validHour.test(hour));

var hour = "09:73"; // 73 minutos;
alert(validHour.test(hour));
en este caso se utiliza el metodo test para comprobar la expresion con un string. este devuelve un boolean donde true indica que la expresion encontro un pareo con el patron dado, y falso pues lo contrario. en este caso, se puede traducir que true nos indica que el string es valido, y false para un string no valido.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 04/02/2010, 07:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

@zerokilled, bueno en realidad las expresiones regulares son lentas en muchos lenguajes de programación como por ejemplo PHP. Se sugiere usar otro tipo de funciones para manejar cierto tipos de datos (como por ej. ctype) que quieras verificar, a menos que no quede remedio de usar las expresiones regulares, porque lo que quieres verificar no hay otra manera. No estoy al tanto que tan lentas o rápidas son en javascript y si hay otra manera de hacer lo que pide @ely0910. Pero sí sé que lo que pide se resuelve con expresiones regulares.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 04/02/2010, 15:33
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

:S... pensé que era menos complicado.. que sólo era colocar un línea más de código donde se pueda restringir a sólo números... ya que el ":" ya lo acepta...

Otra vez gracias @zerokilled, estoy leyendo más sobre expresiones regulares...

Gracias tb @abimaelrc, también estoy leyendo algo sobre el tipo de funciones que indicas...

Bueno en realidad, esto es algo que recien estoy aprendiendo, y necesito urgente... acomodar el código... puesto que la web ya se encuentra funcionando...

No sé si puedan darme más pistas sobre la solución...

Gracias por todoo...
  #10 (permalink)  
Antiguo 05/02/2010, 08:30
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ayuda! problema en validaciones (hora, codigo de operacion)

Dios mio, hasta que por fin la capté... jeje...

Muchas gracias por todo, por fin me funcionó!!!! (y sin tanto código)

@zerokilled, gracias por tus consejos... me ayudaron un montón...

@abimaelrc, como recien estoy aprendiendo, gracias por darme pistas sobre de qué otro modo puede funcionar....

Hasta otro oportunidad... :D

Etiquetas: operacion, validar
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 06:22.