Expresiones regulares

03/03/2004 - 18:01 por Miguel Tubia | Informe spam
Hola a tod@s,
a ver si me pueden echar una mano pq me estoy volviendo loco y seguro q es
una chorrada...
tengo un textbox en el que puedo introducir una fecha, unas letras o dejarlo
en blanco.
Si lo dejo en blanco pongo la fecha de hoy. Si tiene algo miro q puede ser;
con expresiones regulares miro si es una fecha (lo pueden meter ddmmaa,
dd/mm/aa o dd-mm-aa). Hasta ahí bien, me lo coge bien. Pero tb me pueden
meter unos caracteres: L, M, X, J, V, S, D (por los días de la semana). Si
es el caso los meten seguidos (ej: LXV para decir lunes, miércoles y
viernes). Si no es ninguna de las anteriores (ni fecha ni día de la semana)
quiero q de un error. Una vez descartado q es fecha, ¿cómo puedo saber si
introduce alguna de las letras anteriores? Puede empezar por cualquiera,
haber cualquiera de ellas y en cualquier orden. Había puesto
(L?M?X?J?V?S?D?) pero claro, meta las letras q meta siempre me coincide.
¿Cómo lo puedo hacer? Me da rabia pq seguro q es fácil pero no caigo y estoy
perdiendo mucho tiempo en esto
Muchas gracias
Un saludo

Preguntas similare

Leer las respuestas

#1 Anibal Marcano
03/03/2004 - 18:37 | Informe spam
Para validar un caracter entre varios usa corchetes: [LMXJVSD]

Saludos,

Anibal Marcano
Visualven Sistemas C.A.

"Miguel Tubia" wrote in message
news:
Hola a ,
a ver si me pueden echar una mano pq me estoy volviendo loco y seguro q es
una chorrada...
tengo un textbox en el que puedo introducir una fecha, unas letras o


dejarlo
en blanco.
Si lo dejo en blanco pongo la fecha de hoy. Si tiene algo miro q puede


ser;
con expresiones regulares miro si es una fecha (lo pueden meter ddmmaa,
dd/mm/aa o dd-mm-aa). Hasta ahí bien, me lo coge bien. Pero tb me pueden
meter unos caracteres: L, M, X, J, V, S, D (por los días de la semana). Si
es el caso los meten seguidos (ej: LXV para decir lunes, miércoles y
viernes). Si no es ninguna de las anteriores (ni fecha ni día de la


semana)
quiero q de un error. Una vez descartado q es fecha, ¿cómo puedo saber si
introduce alguna de las letras anteriores? Puede empezar por cualquiera,
haber cualquiera de ellas y en cualquier orden. Había puesto
(L?M?X?J?V?S?D?) pero claro, meta las letras q meta siempre me coincide.
¿Cómo lo puedo hacer? Me da rabia pq seguro q es fácil pero no caigo y


estoy
perdiendo mucho tiempo en esto
Muchas gracias
Un saludo


Respuesta Responder a este mensaje
#2 Miguel Tubia
03/03/2004 - 19:06 | Informe spam
Hola,
gracias por responder. sí lo puse al principio, pero tiene el inconveniente
que si pongo, por ejemplo, 'qL1', q no es una cadena que me valga, me lo
pasa como correcto pq tiene la L, q está dentro de lo que permito, ¿sabes
como se puede arreglar esto? Es decir, que si no es ninguna de esas letras,
si la cadena tiene cualquier otra letra, no le deje seguir.
Muchas gracias
Un saludo

"Anibal Marcano" escribió en el mensaje
news:%23%
Para validar un caracter entre varios usa corchetes: [LMXJVSD]

Saludos,

Anibal Marcano
Visualven Sistemas C.A.

"Miguel Tubia" wrote in message
news:
> Hola a ,
> a ver si me pueden echar una mano pq me estoy volviendo loco y seguro q


es
> una chorrada...
> tengo un textbox en el que puedo introducir una fecha, unas letras o
dejarlo
> en blanco.
> Si lo dejo en blanco pongo la fecha de hoy. Si tiene algo miro q puede
ser;
> con expresiones regulares miro si es una fecha (lo pueden meter ddmmaa,
> dd/mm/aa o dd-mm-aa). Hasta ahí bien, me lo coge bien. Pero tb me pueden
> meter unos caracteres: L, M, X, J, V, S, D (por los días de la semana).


Si
> es el caso los meten seguidos (ej: LXV para decir lunes, miércoles y
> viernes). Si no es ninguna de las anteriores (ni fecha ni día de la
semana)
> quiero q de un error. Una vez descartado q es fecha, ¿cómo puedo saber


si
> introduce alguna de las letras anteriores? Puede empezar por cualquiera,
> haber cualquiera de ellas y en cualquier orden. Había puesto
> (L?M?X?J?V?S?D?) pero claro, meta las letras q meta siempre me coincide.
> ¿Cómo lo puedo hacer? Me da rabia pq seguro q es fácil pero no caigo y
estoy
> perdiendo mucho tiempo en esto
> Muchas gracias
> Un saludo
>
>


Respuesta Responder a este mensaje
#3 Anibal Marcano
03/03/2004 - 19:30 | Informe spam
Si le colocas [LMXJVSD]* no debe aceptar ningun caracter fuera de los
especificados. Si no es así enviame el patron completo que estas usando
para verificarlo.

Saludos,

Anibal Marcano
Visualven Sistemas

"Miguel Tubia" wrote in message
news:e$
Hola,
gracias por responder. sí lo puse al principio, pero tiene el


inconveniente
que si pongo, por ejemplo, 'qL1', q no es una cadena que me valga, me lo
pasa como correcto pq tiene la L, q está dentro de lo que permito, ¿sabes
como se puede arreglar esto? Es decir, que si no es ninguna de esas


letras,
si la cadena tiene cualquier otra letra, no le deje seguir.
Muchas gracias
Un saludo

"Anibal Marcano" escribió en el mensaje
news:%23%
> Para validar un caracter entre varios usa corchetes: [LMXJVSD]
>
> Saludos,
>
> Anibal Marcano
> Visualven Sistemas C.A.
>
> "Miguel Tubia" wrote in message
> news:
> > Hola a ,
> > a ver si me pueden echar una mano pq me estoy volviendo loco y seguro


q
es
> > una chorrada...
> > tengo un textbox en el que puedo introducir una fecha, unas letras o
> dejarlo
> > en blanco.
> > Si lo dejo en blanco pongo la fecha de hoy. Si tiene algo miro q puede
> ser;
> > con expresiones regulares miro si es una fecha (lo pueden meter


ddmmaa,
> > dd/mm/aa o dd-mm-aa). Hasta ahí bien, me lo coge bien. Pero tb me


pueden
> > meter unos caracteres: L, M, X, J, V, S, D (por los días de la


semana).
Si
> > es el caso los meten seguidos (ej: LXV para decir lunes, miércoles y
> > viernes). Si no es ninguna de las anteriores (ni fecha ni día de la
> semana)
> > quiero q de un error. Una vez descartado q es fecha, ¿cómo puedo saber
si
> > introduce alguna de las letras anteriores? Puede empezar por


cualquiera,
> > haber cualquiera de ellas y en cualquier orden. Había puesto
> > (L?M?X?J?V?S?D?) pero claro, meta las letras q meta siempre me


coincide.
> > ¿Cómo lo puedo hacer? Me da rabia pq seguro q es fácil pero no caigo y
> estoy
> > perdiendo mucho tiempo en esto
> > Muchas gracias
> > Un saludo
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Miguel Tubia
03/03/2004 - 23:32 | Informe spam
Hola,
gracias por responder y perdon si te estoy volviendo loco. El patrón q uso
es el siguiente:

patron="[LMXJVSD]*";
match = Regex.Match(txt, patron);
if (match.Success)
{
fijo=true;
}
else
{
this.txt_Dias.Focus();
this.err_servicios.SetError(this.txt_Dias, "Ha introducido un valor no
válido");
return
}

Las fechas las compruebo antes en un bloque if. A este bloque llega si no se
ha metido ninguna fecha. Pongo el patrón como me dijiste. La variables txt
tiene el texto del textbox, y miro si coincide con el patrón. Si es así
actúo en consecuencia poniendo una variable a true (la declaro antes). Si no
coincide es q el usuario ha metido algo mal, mantengo el foco en el textbox
y le pongo un error. He de indicar que esto está en el evento leave del
textbox.
Espero q puedas ver dónde está el fallo... si necesitas algo más del código
no dudes en pedirlo.
Muchas gracias por todo
Un saludo
Respuesta Responder a este mensaje
#5 Alejandro Bibiano González
04/03/2004 - 08:22 | Informe spam
No uso mucho las expresiones regulares, pero ne debería ser
patron="[L|M|X|J|V|S|D]*";?

"Miguel Tubia" escribió en el mensaje
news:
Hola,
gracias por responder y perdon si te estoy volviendo loco. El patrón q uso
es el siguiente:

patron="[LMXJVSD]*";
match = Regex.Match(txt, patron);
if (match.Success)
{
fijo=true;
}
else
{
this.txt_Dias.Focus();
this.err_servicios.SetError(this.txt_Dias, "Ha introducido un valor no
válido");
return
}

Las fechas las compruebo antes en un bloque if. A este bloque llega si no


se
ha metido ninguna fecha. Pongo el patrón como me dijiste. La variables txt
tiene el texto del textbox, y miro si coincide con el patrón. Si es así
actúo en consecuencia poniendo una variable a true (la declaro antes). Si


no
coincide es q el usuario ha metido algo mal, mantengo el foco en el


textbox
y le pongo un error. He de indicar que esto está en el evento leave del
textbox.
Espero q puedas ver dónde está el fallo... si necesitas algo más del


código
no dudes en pedirlo.
Muchas gracias por todo
Un saludo


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida