JavaScript - Ayuda con expresión regular

 
Vista:

Ayuda con expresión regular

Publicado por Julen (1 intervención) el 13/04/2007 09:02:26
Hola!

Estoy intentando hacer una expresión regular para utilizarlo como máscara.

La idea es que el usuario sólo puede meter en una caja de texto una de las siguientes cosas:

1) Un valor numérico con 3 enteros y 3 decimales; que puede llevar o no el signo negativo (-) por delante. Para las decimales uso la coma

2) Una sola la letra p ó v (tanto minúsculas como mayúsuculas)

3) Sólo 2 letras pero que la primera siempre sea la 'n' (minúscula o mayúscula)

Hasta ahora para los números he conseguido hacer esto y creo que funciona bien:

/^[-]?(\d{1,3}([\,]\d{0,3})?)?$/

Para el caso 2 uso esto:

/^(n|N)(\D)?$/

y en el 3 ya me he atascado porque no consigo juntar las expresiones regulares anteriores.

Además hay que sumarle el problema de los caracteres especiales como el "Intro", "Supr" o la barra espaciadora.

He intentado varias combinaciones pero no me sale. Si alguien me puede ayudar se lo agradecería un montón.

Uns saludo y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con expresión regular

Publicado por Gonzalo (107 intervenciones) el 13/04/2007 12:22:27
Las que pones son la 1 y la 3, la que te falta es la 2, que parece fácil, no? [pPvV]{1} o si prefieres (p|P|v|V). Lo que no tengo muy claro es si cuando dices "sólo dos letras" en el caso 3, tienen que ser "como mucho 2" u "obligatoriamente 2". Es decir si tiene que ser nX o si puede valer sólo n. Lo digo porque entonces en lugar de la ? deberías poner {1} ah, y también, mejor que usar \D usa \w
Es decir:
/^(n|N)\w{1}$/

En cuanto al tema de Intro, supr o espacio...
El espacio en blanco se identifica con \s. Un "Intro" en principio sería \n o \r\n pero en realidad el usuario no puede meter un intro en un <input type=text> así que no se va a dar el caso. Y lo mismo para un "Supr", solo que en este caso el Supr ni siquiera es un carácter real, sino que es un carácter de control con lo que borra pero no forma parte de una cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar