Como posso verificar a localização correta das vírgulas em um número inserido por um usuário?
-
19-09-2019 - |
Pergunta
Estou procurando uma boa maneira de verificar um número que um usuário inseriu para a posição correta das vírgulas opcionais.
Por exemplo
1,000,000.00 = correct
1000000 = correct
1,00,000.00 = incorrect
,100,000 = incorrect
Parece que preciso verificar se há pelo menos um número à esquerda e 3 números à direita da vírgula, ou há uma maneira Regex de fazer isso?
Solução
Para que você vai usar isso? Ou coloque de outra maneira, por que se importar? Por que não tirar todas as vírgulas e convertê -lo em um tipo numérico?
Outras dicas
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/
Confira este site: http://blog.stevenlevithan.com/archives/commafy-numbers
Aqui está o trecho de código:
String.prototype.commafy = function () {
return this.replace(/(^|[^\w.])(\d{4,})/g, function($0, $1, $2) {
return $1 + $2.replace(/\d(?=(?:\d\d\d)+(?!\d))/g, "$&,");
});
}
Number.prototype.commafy = function () {
return String(this).commafy();
}
O que você pode fazer é substituir todas as vírgulas e, em seguida, usar esse código para adicionar as vírgulas.
Espero que ajude.
Aqui está um padrão Isso responde à sua pergunta. Existem também muitos outros padrões relacionados a números, incluindo aqueles que são sustentáveis-algo com que ninguém parece se preocupar.