Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de ao o usuario digitar, os números ir separando por pontos e quando terminar voltar ao normal. Consegui adicionar um ponto, mas os outros não aparecem
Eis meu código;
function adicionarPonto(nStr) {
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + '.' + '$2');
}
return x1 + x2;
}
function RemoverPonto(campo)
{
campo.value = campo.value.replace(".", "");
campo.value = campo.value.trim();
}
Html
<form name="formteste">
<!--Colocamos como parametro o valor do Id e mandamos para a função DuasCasasDecimais(id)-->
<strong>Digite o número (adiciona pontos):</strong><br/>
<input type="text" onkeyup="this.value=adicionarPonto(this.value);" onblur="RemoverPonto(this);" /> <br/><br/>
</form>
Resultado:

Como deveria ficar:

ObrigadoPerfeito amigo, muito obrigado.
Não entendi muito bem essa parte
var nvalue = Number(RemoverPonto(campo)).toLocaleString('pt-BR')
Mas funcionou perfeitamenteAplico a função para remover os pontos antes de colocar os pontos
RemoverPonto(campo)
uso o método do Number do JS para "traduzir os números" para português do Brasil .toLocaleString('pt-BR')
que usa os pontos dos milhares como você queria
Perfeito, muito obrigado
da uma olhada
https://jsfiddle.net/0yno82az/1/