Expressão Regular para valor monetário

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