Alguien que sepa conque expresion regular puedo validar una entrada en formato de moneda?
Yo tengo esta:
[$]?[-+]?\d{3,5}(\.\d{1,2})?
Pero no me valida si existe la coma ni numeros muy grandes.
Saludos
| |||
![]() Alguien que sepa conque expresion regular puedo validar una entrada en formato de moneda? Yo tengo esta: [$]?[-+]?\d{3,5}(\.\d{1,2})? Pero no me valida si existe la coma ni numeros muy grandes. Saludos |
| ||||
Re: Validar Formato Moneda $1,123.00 Se me ha ocurrido esta forma, ¿qué te parece? Es un poco rebuscada, la he hecho con dos posibilidades porque si no se complica bastante la cosa.
Código:
var cantidades = new Array( "$1,123.00", "$34.05", "$5.22", "$123,123.94", "$1,123,123.00", "12,231.12", "12", "$12.123", "$45.1", "$2112.12", "$87212.41", "$1231.12.12", "$12,45,123.12" ); var re1 = /^\$(((\d{1,3},)(\d{3},)*\d{3})|(\d{1,3}))\.\d{2}$/; for( var i in cantidades ) { document.write( cantidades[i]+" --> "+re1.test(cantidades[i]) +"<br/>"); } Serían estas dos partes en rojo: /^\$(((\d{1,3},)(\d{3},)*\d{3})|(\d{1,3}))\.\d{2}$/ Y la parte de $ y la decimal en azul. Tenía el problema de que no podía dar por "$12,45,123.12" si no hacía esas dos posibilidades. Aunque también se podría poner \d{1,3} y después, opcionalmente, todo detrás. Un saludo.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| ||||
Re: Validar Formato Moneda $1,123.00 ¿Qué te pareció? ¿Lograste una validación más cómoda? Responde por favor.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| |||
Respuesta: Validar Formato Moneda $1,123.00 Sé que han pasado años desde la publicación, pero siempre habrá alguien que ande urgido buscando. He creado esta expresión regular y me funciona perfectamente: ^[0-9]{1,3}([\\.][0-9]{3})*[\\,][0-9]{2}$ En este caso el separador de miles es punto, y el de decimales es la coma y permito dos decimales, si usan algo diferente sustituyan los caracteres en rojo |
| ||||
Respuesta: Validar Formato Moneda $1,123.00 Wolfmarel, si querías escapar al punto y a la coma, te bastaba con una barra invertida para cada caso; con dos, solo terminas escapando a la barra misma. De cualquier modo, no debes de revivir hilos con más de 6 meses de antigüedad. Saludos
__________________ «Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío». ― Ayn Rand |