Como validar um campo com mascar para valor monetario?

11 respostas
J

Bom dia a todos, estou tentando validar um campo que rebebe um valor monetario, e procurava uma expressão regular para isso, não encontrei nenhuma que fucione alguem pode me ajudar?

11 Respostas

shoko

web, ou swing?

J

WEB

shoko

olha cara eu achei alguma coisa aqui ve se serve para voce

^$?[0-9]+(,[0-9]{3})*(.[0-9]{2})?$

$ seguido de um numero de 0 à 9.
0-9 3 casas(quantas vezes necessario)
depois mais um . seguido de 0 a 9 duas casas.

é isso acho que tá no padrao americano com dolares só alterar.

ve se serve para você cara.

abraço

J

Valeu pela ajuda, mas da uma mensagem de illegal scape character.

shoko

tenta essa cara

RegExp( /^$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:.\d{1,2}){0,1}$/ );

ó o site que eu achei elas é esse:

http://forums.devshed.com/net-development-87/custom-validation-regular-expression-money-113412.html

pesquisei no google por monetary regular expression

J

Meu codigo esta assim, e o erro continua, será que estou fazendo algo de errado?

if (!Utilitario.isEmpty(salario)) {
            //Pattern pattern = Pattern.compile("^(?:[1-9](?:[\d]{0,2}(?:\.[\d]{3})*|[\d]+)|0)(?:,[\d]{0,2})?$");
            Pattern pattern = Pattern.compile("/^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/");            
            Matcher matcher = pattern.matcher(salario);
            if (matcher.matches() == false) {
                getErrors().add("Campo Valor incorreto!!!");
            }
        }
shoko

tente agora

/^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/"

acho que era o problema das barras

J

Cara agora esta funcionando, a unica coisa e que tentei modificar par o padrão brasileiro incluindo o R antes do $, mas nõa deu certo, vc saberia como modificar?

shoko

olha cara depois de muitas tentativas eu acho que eu consegui oq voce queria

//valida no estilo 192.123,00
//123,00, 1,00 
// qualquer valor monetário ele valida! no estilo brasileiro

Pattern pattern = Pattern.compile("^[-+]?\d{1,3}(\.\d{3})*,\d{2}$");

ae eu acho que agora vai dar certo, aqui eu testei e deu. espero ter ajudado, um site legal para voce testar suas expressões regulares é esse: http://tools.lymas.com.br/regexp_br.php#

abraco

J

Obrigado funcionou, Deus lhe pague e abençoe pela ajuda!

shoko

que isso cara, precisando estamos ai :slight_smile:

Criado 24 de julho de 2008
Ultima resposta 24 de jul. de 2008
Respostas 11
Participantes 2