Foros del Web » Programando para Internet » Javascript »

Comprobar la posición de letras y numeros en un imput

Estas en el tema de Comprobar la posición de letras y numeros en un imput en el foro de Javascript en Foros del Web. Hola a todos. A ver si alguien me puede echar una mano, he podido comprobar si en el imput todos los caracteres son letras y ...
  #1 (permalink)  
Antiguo 30/03/2007, 14:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 0
Exclamación Comprobar la posición de letras y numeros en un imput

Hola a todos. A ver si alguien me puede echar una mano, he podido comprobar si en el imput todos los caracteres son letras y números o si hay algun caracter que no lo sea, pero no logro armar algo que me compruebe si el formato es @@####@@## (o sea letra letra número número número número letra letra número número)y si no tiene ese formato de un alerta de formato incorrecto, oviamente para quien pueda tirarme una punta por minima que sea, mil gracias.
  #2 (permalink)  
Antiguo 30/03/2007, 17:08
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Comprobar la posición de letras y numeros en un imput

Hola
Pues te tocaria hacer una funcion que te reciba la cadena, y luego cortas esa cadena y la pones en un array
Ese array lo pones a compararse en un for y que dependiendo de la posición pues se compararia también si es texto o numérico y por cada uno que este erroneo podrias mostrar un alert o dejar el alert a lo ultimo y en variables guardar las posiciones que estan incorrectas, es solo una idea.
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
  #3 (permalink)  
Antiguo 31/03/2007, 16:43
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Comprobar la posición de letras y numeros en un imput

Bufff. ¿No es más facil por expresiones regulares y una sencilla funcion test?
Te doy una pista
/^\w{2}\d{4}\w{2}\d{2}$/i
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 31/03/2007, 18:45
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Comprobar la posición de letras y numeros en un imput

pues como dice dernuke con expresiones regulares ahora si no sabes de que van puedes cortar los trozos de tu variable y compararlos con sbstr(variable, P, F)
donde variable es tu variable :P y P es el numero de principio y F final

sbstr($_POST[mi_variable], 0, 5)
sbstr($_POST[mi_variable], 10, 15) etc...
si tampoco sabes de que hablo :P me dices y te hechamos una mano mas a fondo ¬¬ que no se entienda mal X)

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 31/03/2007, 19:27
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Comprobar la posición de letras y numeros en un imput

Sí pero sin expresiones regulares aunque tuvieras un cacho tendrías que comprobar que todos fueran, por ejemplo, numeros. Tendrías que hacer:
Number(cacho) == cacho
O si no algo más global

var numeros="1234567890"; var letras="abcd...xyzABCD..XYZ";
if (numeros.indexOf(caracter)>-1)
//es numero
else if (letras.indexOf(caracter)>-1)
//es letra
else
//no es ni numero ni letra

Y, a mi juicio, sería más complicado, más lento, ocuparía más memoria, y el script tendría peor calidad (pa los puristas )


Eso sí, te recomiento utilizar el que tú entiendas mejor.


Por cierto kaninox, la función substr no existe en javascript; creo que te has confundido con el PHP. Además en la función substr el tercer argumento es longitud del substring, no caracter final:
string substr ( string $string, int $start [, int $length] );

Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 31/03/2007, 19:37
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Comprobar la posición de letras y numeros en un imput

yes mucha razon en ello :P
pues como habia dicho si el compa no sabe de lo que va los expresiones regulares pues que tratara con ir comparando, se me olvido poner que era en php :P weno se entendio por los POST pues para mi gusto siempre mejor validar al lado del server que al lado del usuario pero weno :P yo tambien uso javascript X)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #7 (permalink)  
Antiguo 09/04/2007, 06:58
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Comprobar la posición de letras y numeros en un imput

Cita:
Iniciado por kaninox Ver Mensaje
pues como dice dernuke con expresiones regulares ahora si no sabes de que van puedes cortar los trozos de tu variable y compararlos con sbstr(variable, P, F)
donde variable es tu variable :P y P es el numero de principio y F final

sbstr($_POST[mi_variable], 0, 5)
sbstr($_POST[mi_variable], 10, 15) etc...
si tampoco sabes de que hablo :P me dices y te hechamos una mano mas a fondo ¬¬ que no se entienda mal X)

saludos
Perdon por aucentarme, por cuestiones laborales no pude seguir con lo que estaba y necesitaria una mano mas a fondo y tranquilo no lo entendí mal, lo que debo controlar en la cadena de 10 caracteres, es que los 2 primeros caracteres sean siempre letras los 4 siguientes siempre sean números los 2 siguientes sean letras y los 2 últimos sean numeros siempre se tendria que dar esta condicion sino un Alert "No cumple con los requisitos" las letras son siempre en MAYUSCULAS y no llevaria "Ñ" (por ej. AB1234CD56)
  #8 (permalink)  
Antiguo 09/04/2007, 07:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Comprobar la posición de letras y numeros en un imput

Hola RoJaS-21

Utilizando la expresión regular de derkenuke, te he preparado esto:

Código:
<html>
<head>
<script type="text/javascript">
function validar(txt) {
  patron = /^\w{2}\d{4}\w{2}\d{2}$/i;
  if (!patron.test(txt))
    alert('Error');
}
</script>
</head>
<body>
<input type="text" onblur="validar(this.value)" />
</body>
</html>
Saludos,

Última edición por JavierB; 09/04/2007 a las 08:24 Razón: Corregir etiqueta
  #9 (permalink)  
Antiguo 09/04/2007, 08:11
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Comprobar la posición de letras y numeros en un imput

Cita:
Iniciado por JavierB Ver Mensaje
Hola RoJaS-21

Utilizando la expresión regular de derkenuke, te he preparado esto:

Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
validar(txt) {
  
patron = /^w{2}d{4}w{2}d{2}$/i;
  if (!
patron.test(txt))
    
alert('Error');
}
</script>
</head>
<body>
<input type="text" onblur="validar(this.value)" />
</body>
</html> 
Saludos,
Bueno, pues probando este script logrado por JavierB, no importa que caracter se use (números, letras, o combinados) siempre muestra el alert, tal vez JavierB lo puso a modo de ej para que RojaS-21 se guiara, pero pues tal vez le falto algo.
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
  #10 (permalink)  
Antiguo 09/04/2007, 08:23
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Comprobar la posición de letras y numeros en un imput

Hola de nuevo.

El fallo ha sido utilizar la etiqueta [php] que se traga las barras invertidas. Ya está corregido.

Lo que no he conseguido es que sólo acepte mayúsculas

Saludos,
  #11 (permalink)  
Antiguo 09/04/2007, 08:55
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Comprobar la posición de letras y numeros en un imput

Para admitir sólo las mayúsculas y las minúsculas no, habría que sustituir \w por [A-Z], y además quitar la i final de la expresión regular, que hace que no se tenga en cuenta mayúsculas y minúsculas.

Ojo que [A-Z] admite sólo el rango A-Z en inglés, es decir, ni la Ñ ni las tildes. Para aceptar esas letras: [A-ZÁÉÍÓÚÜÑ], tendremos que ponerlas al lado de A-Z.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 09/04/2007, 09:15
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Comprobar la posición de letras y numeros en un imput

Después de probarlo encontré el mismo error y leyendo un poco mas detenidamente y viendo lo que me sugirió derkenuke, que por cierto desconozco lo que es una expresión regular (tendré que estudiar un poco mas ) lo pude hacer funcionar, y ahora me encuentro que el error ya lo corrigieron gracias JavierB pero me encuentro todavía con el problema de que no me controla si son mayúsculas o no . Genial derkenuke, simplemente genial muchas gracias. Todo funcionó a la perfección.

Última edición por RoJaS-21; 09/04/2007 a las 09:30
  #13 (permalink)  
Antiguo 09/04/2007, 09:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Comprobar la posición de letras y numeros en un imput

Hola otra vez.

Había probado lo de [A-Z] que comenta derkenuke, pero se me había pasado el pequeño/gran detalle de la i

RoJaS-21: tienes que cambiar esta línea:

Código:
patron = /^[A-Z]{2}\d{4}[A-Z]{2}\d{2}$/;
Saludos,
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 20:15.