Existe alguma função em Javascript para formatar números e strings?
Estou procurando uma forma de separador de milhar para string ou números ... (como String.Format In c #)
javascript
string
numbers
format
LostLord
fonte
fonte
How to print a number with commas as thousands separators in JavaScript
: stackoverflow.com/questions/2901102/…Respostas:
Atualização (7 anos depois)
A referência citada na resposta original abaixo estava errada. Não é construído em uma função para isso, que é exatamente o kaiser sugere a seguir:
toLocaleString
Então você pode fazer:
A função implementada abaixo também funciona, mas simplesmente não é necessária.
(Achei que talvez tivesse sorte e descobrisse que era necessário em 2010, mas não. De acordo com esta referência mais confiável , toLocaleString faz parte do padrão desde ECMAScript 3ª Edição [1999], o que acredito ser o mesmo. teria sido suportado desde o IE 5.5.)
Resposta Original
De acordo com esta referência, não existe uma função incorporada para adicionar vírgulas a um número. Mas essa página inclui um exemplo de como codificá-lo você mesmo:
Editar: para fazer o contrário (converter string com vírgulas em número), você poderia fazer algo assim:
fonte
(1234567).toLocaleString().replace(/,/g," ",)
para espaços entre milharesSe se trata de localizar separadores de milhares, delimitadores e separadores decimais, vá com o seguinte:
Existem várias opções que você pode usar (e até mesmo locais com substitutos):
Detalhes na página de informações do MDN .
Edit: Comentador @I like Serena adiciona o seguinte:
fonte
Number(yourNumberOrString).toLocaleString()
value.toLocaleString('en')
. Também funciona para ponto flutuante.Uma expressão regular pode ser usada - notavelmente útil para lidar com grandes números armazenados como strings.
»Explicação detalhada do regex (regex101.com)
Tentando lidar com isso com uma única expressão regular (sem retorno de chamada), minha habilidade atual me falha por falta de um look-behind negativo em Javascript ... nunca menos aqui está outra alternativa concisa que funciona na maioria dos casos gerais - levando em conta qualquer ponto decimal ignorando correspondências em que o índice da correspondência aparece após o índice de um período.
»Explicação detalhada do regex (regex101.com)
fonte
Há um bom plugin de número jQuery: https://github.com/teamdf/jquery-number
Ele permite que você altere qualquer número no formato que desejar, com opções para dígitos decimais e caracteres separadores para decimal e mil:
Você pode usá-lo dentro dos campos de entrada diretamente, o que é melhor, usando as mesmas opções acima:
Ou você pode aplicar a todo um conjunto de elementos DOM usando o seletor:
fonte
Eu uso isso:
fonte: link
fonte
'123452343267.0505'.replace(/\B(?=(\d{3})+(?!\d))/g, ","); "123,452,343,267.0,505"
- observe a última vírgula após o ponto decimal.fonte
para referência, você pode verificar aqui https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
fonte
Você pode usar javascript. abaixo estão o código, será apenas
accept
numérico e umdot
DEMO JSFIDDLE
fonte
fonte
PHP.js tem uma função para fazer isso chamada number_format . Se você estiver familiarizado com PHP, ele funciona exatamente da mesma maneira .
fonte
Tudo que você precisa fazer é realmente isto :
fonte
toLocaleString()
que não adiciona vírgulas ou não possuem outros recursos no padrão. É fácil verificar atoLocaleString
presença, mas não verificar sua conformidade.Combinação de soluções para reagir
fonte
Você pode usar ngx-format-field. É uma diretiva para formatar o valor de entrada que aparecerá na visualização. Não irá manipular o valor de entrada que será salvo no backend. Veja o link aqui !
Exemplo:
Para ver a demonstração: aqui !
fonte
Você pode usar a seguinte função:
fonte
Não gostei de nenhuma das respostas aqui, então criei uma função que funcionou para mim. Só quero compartilhar, caso alguém mais considere útil.
fonte