Foros del Web » Programando para Internet » Javascript »

Porque no me funciona validar()???

Estas en el tema de Porque no me funciona validar()??? en el foro de Javascript en Foros del Web. <script> function validar(){ var ex=/{4,8}/; if(ex.test(document.formula.clave.value)){ alert("bueno"); }else{ alert("malo"); return false; } } </script> <form name="formula" action="#" method="post" onsubmit="return validar()" > <input type="text" name="clave" /> ...
  #1 (permalink)  
Antiguo 26/03/2011, 21:47
 
Fecha de Ingreso: noviembre-2010
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 2
Porque no me funciona validar()???

<script>
function validar(){
var ex=/{4,8}/;
if(ex.test(document.formula.clave.value)){
alert("bueno");
}else{
alert("malo");
return false;
}
}
</script>
<form name="formula" action="#" method="post" onsubmit="return validar()" >
<input type="text" name="clave" />
<input type="submit" />
</form>

Necesito que acepte entre 4 y 8 caracteres, xq no me funciona???

y si lo pongo asi: /\w{4,8}/; me funciona pero me acepta mas de 8 caracteres q esta mal?
  #2 (permalink)  
Antiguo 27/03/2011, 06:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Porque no me funciona validar()???

buenas...

lo que tienes mal es la expresion regular. las llaves se utilizan para indicar repeticion del elemento anterior. en este caso no tiene nada para repetir. por eso debes usar algo similar a la expresion /\w{4,8}/. ahora queda el problema de que puede evaluar mas de ocho caracteres. se debe a que el patron busca exactamente ese rango desde cualquier posicion del string -mas bien partiendo de izquierda a derecha. fijate que el repetidor no indica cuantos caracteres DEBEN haber en el string, simplemente indica las posibles veces que se pueden repetir. en fin, la solucion es utilizar anclas en la expresion para indicarle que la evalacion debe realizarse desde el inicio y fin del string.
Código:
/^aqui dentro va la expresion$/
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: Ninguno
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 13:13.