Galera boa tarde.
Preciso de uma expressão regular para validar valores monetários com 2, 3 e 4 casas decimais…
Ex: 0,01 0,001 0,0001
^(\d{1,3}(.\d{3})*|(\d+))(,\d{2})?$
Fiz assim mas não valida quando tem 3 casas, se alguém puder me ajudar fico agradecido.
Obrigado.
Sem mais, Rodrigo.
X pode valer 2, 3 ou 4
^\d+([.,]\d{1,X})?$
se for 4, casa com estes padrões
0,01
0,001
0,0001
0.01
0.001
0.0001
se for 2 casa apenas com
0,01
0.01
se a parte dos centavos for opcional, coloque os (…)?
Eu uso algo assim para validar com 2 casas:
^([1-9]{1}[\d]{0,2}(\.[\d]{3})*(\,[\d]{0,2})?|[1-9]{1}[\d]{0,}(\,[\d]{0,2})?|0(\,[\d]{0,2})?|(\,[\d]{1,2})?)$
E valido aqui:
http://tools.lymas.com.br/regexp_br.php
Valew galera pelos posts, que site show de bola hein pra testar regex, obrigado.
http://guia-er.sf.net/
Esse site é um guia online, versão online disponibilizada pelo autor do “Expressões Regulares - Guia de Consulta Rápida”…
É muito bom, aborda de maneira objetia como criar regex…
[quote=Ironlynx]Eu uso algo assim para validar com 2 casas:
^([1-9]{1}[\d]{0,2}(\.[\d]{3})*(\,[\d]{0,2})?|[1-9]{1}[\d]{0,}(\,[\d]{0,2})?|0(\,[\d]{0,2})?|(\,[\d]{1,2})?)$
E valido aqui:
http://tools.lymas.com.br/regexp_br.php[/quote]
Alias esta er pode ser escrita assim:
^(?:[1-9](?:[\d]{0,2}(?:\.[\d]{3})*|[\d]+)|0)(?:,[\d]{0,2})?$
Vejamos alguns testes
0 casou
1 casou
2 casou
3 casou
0,00 casou
0,01 casou
1,00 casou
10,00 casou
100,00 casou
1000,00 casou
1.000,00 casou
01,00 nao casou
3,548305945 nao casou
Bom dia , e para o caso
de ser obrigátorio ex ( 1.000 ) ?
Com esse exemplo roda porém é opcional digitar 1000 (sem ponto)
Obrigado