Dúvida em expressao regular para numero decimal

2 respostas
A

Consegui controlar o numero decimal atraves da expressao regular.

(\d)*[.]\d{2}

Porem preciso controlar notas.
Não pode ultrapassar 10,00
Obrigado

2 Respostas

E

O seu problema é que o valor tem de estar entre 0 e 10,00. Isso é mais chato que parece - é uma das coisas que expressões regulares não resolvem bem. Até porque “000009,99000” é uma expressão válida", não?
Eu recomendaria dividir o problema de validação em duas partes: uma que é bater com a expressão regular, e a outra que é comparar com o valor - até porque seu problema é relativamente simples - o máximo é 10 - mas nem sempre o problema é tão simples; poderia ser um valor como “23,45” ou alguma outra coisa.

nel

entanglement:
O seu problema é que o valor tem de estar entre 0 e 10,00. Isso é mais chato que parece - é uma das coisas que expressões regulares não resolvem bem. Até porque “000009,99000” é uma expressão válida", não?
Eu recomendaria dividir o problema de validação em duas partes: uma que é bater com a expressão regular, e a outra que é comparar com o valor - até porque seu problema é relativamente simples - o máximo é 10 - mas nem sempre o problema é tão simples; poderia ser um valor como “23,45” ou alguma outra coisa.

Bom, parece chato e deselegante, todavia, para contornar o problema dos 0´s a frente é transformar em um Double e depois, novamente, em uma String.
Isso removeria automaticamente os 0´s a frente. Pois, 001 não é um número válido.

Mas concordo com o entanglement, talvez uma regex não seja a melhor opção para o seu problema.
Forte abraço.

Criado 3 de novembro de 2011
Ultima resposta 3 de nov. de 2011
Respostas 2
Participantes 3