Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/11/2014, 14:53
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problema con expresiones regulares solo números de 0 a 9999.

bueno no es exactamente así. me expresé mal. lo que ocurre es que toma el primer valor de cada parte y si el valor a comprobar no está en ese rango toma el segundo valor de la primera parte y el primero de la segunda. con lo que en una expresión [1-95] hay dos combinaciones [1-9] y [1-5]. unos ejemplos te lo aclarara
Cita:
for (var i = 0; i <= 9; i++) {
if(!/[8828888-999999]/.test(i)) console.log(i);
}


for (var i = 0; i <= 9; i++) {
if(!/[88288881-999999]/.test(i)) console.log(i);
}
imagina que quieres que el valor a evaluar esté entre el 80 y 99
Cita:
for (var i = 80; i <= 99; i++) {
console.log(/^([89]\d)$/.test(i));
}
una vez dicho esto último, no es practico evaluar si el valor está entre el 1 y 9999 con expresiones regulares. yo lo haría con parseInt()
Cita:
var str = parseInt('99099', 10);

if(str < 1 || str > 9999) {
console.log('error ' + str);
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}