Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/06/2011, 11:37
francap
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Expresión regular con RegExp

Básicamente... ahora no quiere dejar de funcionar. Y no puedo probar con la consola. Vuelvo a poner todo como antes (salvo aquel if que no cumplia función alguna) y funciona todo bien.

Lo que si te puedo decir es que en DW no me daba errores de sintaxis. Chorme debe tener la consola desactivada por defecto.. porque nunca vi un mensaje de error.

Te dejo el código que funciona ahora para que veas que no hay ninguna modificación con el que no funcionaba, salvo el if.

Código Javascript:
Ver original
  1. text_PrecioDec=document.getElementById('text_precioDec');
  2.  
  3.     if (filtrar_Num(text_PrecioDec , 1, 2)){
  4.         text_PrecioDec.className="text_dec";
  5.     } else {
  6.         DatosCorrectos=false;
  7.        
  8.         text_PrecioDec.className="text_dec_err";
  9.        
  10.     }
  11.  
  12. function filtrar_Num(text, t_min, t_max){
  13. //devuelve verdadero si solo hay digitos del 0-9 sino falso
  14. //y la cantidad de caracteres debe estar entre $min y $max
  15.     texto=text.value;
  16.     var RegExPattern = new RegExp("^[0-9]{" + t_min + "," + t_max + "}$","i");
  17.    
  18.     return RegExPattern.test(texto);
  19. }

Es muy raro.. además yo esta función ya la usaba anteriormente en otro sector y funcionaba bien. Pero ahora no funciona. En ese otro sector. Las llamadas son iguales no se es muy raro....

edito: el problema en el otro lado no es igual.. es un error en la expresión regular que me controla solo el máximo y el mínimo pero me acepta cualquier caracter:

Código Javascript:
Ver original
  1. var RegExPattern = new RegExp("^[0-9A-Za-z_ -áéíóúÁÉÍÓÚñÑ]{" + t_min + "," + t_max + "}$","i");

por ejemplo si pongo &%###" me retorna true

Última edición por francap; 10/06/2011 a las 11:50