Foros del Web » Programando para Internet » Javascript »

problema con expresión regular

Estas en el tema de problema con expresión regular en el foro de Javascript en Foros del Web. Hola, no se si este es el subforo adecuado. Tengo la siguiente variable de js var filter=/[^0-9]/; if (filter.test(txtField.value)){ alert('error'); } Esto evalua valores del ...
  #1 (permalink)  
Antiguo 05/05/2008, 16:37
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 20 años, 1 mes
Puntos: 0
problema con expresión regular

Hola, no se si este es el subforo adecuado.
Tengo la siguiente variable de js

var filter=/[^0-9]/;

if (filter.test(txtField.value)){
alert('error');
}

Esto evalua valores del 0 al 9
El problema que tengo es que está NO está el alert cuando txtField.value=01
Como cambio filter para que evalue a 01 como true?

Gracias.
__________________
ratamaster
  #2 (permalink)  
Antiguo 05/05/2008, 16:47
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 11 meses
Puntos: 12
Re: problema con expresión regular

Creo ke debes ponerle un mas a tu expresion:

var filter=/[^0-9]+/;

Intentalo y nos kuentas.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #3 (permalink)  
Antiguo 05/05/2008, 16:56
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: problema con expresión regular

Gracias Fann_Lavigne pero no, aún evalua 01 (01,02,03, etc) como true, y esto no debe pasar :(
__________________
ratamaster
  #4 (permalink)  
Antiguo 05/05/2008, 17:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: problema con expresión regular

Prueba con ésta:
var filter=/^[0-9]+$/;

Y si quieres que solo cumpla con números de dos digitos, puedes probar con:
var filter=/^[0-9]{2}$/;
  #5 (permalink)  
Antiguo 05/05/2008, 17:15
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: problema con expresión regular

Hola, lementablemente tampoco, esta me evalua como true valores tales como a, a1, y cualquier otra letra, y me evalua false a los digitos.
__________________
ratamaster
  #6 (permalink)  
Antiguo 05/05/2008, 17:25
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 11 meses
Puntos: 12
Re: problema con expresión regular

Kreo ke no he entendido ke es lo ke necesitas evaluar, solo 0 al 9, y ya kon eso? pues kitale el gorrito [0-9] asi, ya kon eso sera del 0 al 9. O si aun no he entendido, explikamelo de otra forma plis.

saludos.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #7 (permalink)  
Antiguo 05/05/2008, 19:27
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: problema con expresión regular

estos son los únicos valores válidos:

1
2
3
4
5
6
7
8
9
10

Cualquier otra cosa diferente a estos valores debe resultar en el alert
__________________
ratamaster
  #8 (permalink)  
Antiguo 06/05/2008, 00:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: problema con expresión regular

Lo siento, antes se me habían olvidado los parentesis.
Pues bien para el conjunto de valores que quieres la expresión a utilizar es:

var filter=/^([1-9]|10)$/;
  #9 (permalink)  
Antiguo 06/05/2008, 05:47
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: problema con expresión regular

Muchas gracias, funcionó.
__________________
ratamaster
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 18:40.