Como posso verificar a localização correta das vírgulas em um número inserido por um usuário?

StackOverflow https://stackoverflow.com/questions/1308016

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top