Ir para conteúdo
Fórum Script Brasil
  • 0

Existe Um Number_format


doulo4ever

Pergunta

Olá pessoal, existe alguma função no javascript que faça a mesma coisa que o number_format do PHP??

Andei procurando na net já mas só acho umas funções bem cabeludas para formatar moeda!

Existe alguma forma simples e eficiente no javascript para fomratar moeda tipo:

R$ 1323.46

Para

R$ 1.323,46

Obrigaduuuu.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • 0

Me dá uma força pra implementar essa formatação nesse código ajax meu?

Deixei as linhas comentadas pra ficar mais fácil de saber onde to com problema.

var frete = ajax1.responseText;  // Este valor retorna no formato 43,60 ... acima de 1.000 ele retorna no formato 1.100,00

frete = frete.replace(",", "."); // Estou trocando a vírgula por ponto, mas só vai funcionar para valores menores que 1.000 ... aqui preciso fazer uma formatação que se o valor vier maior que 1.000 ele deixe no formato 1200.50

var total_carrinho = document.getElementById("total_carrinho").value; // Este valor vem no formato 100.00 ou 1200.50 quando maior que 1.000 ... não preciso mexer nada aqui

var soma = parseFloat(frete) + parseFloat(total_carrinho);

document.getElementById("total").innerHTML = "R$ "+soma; // Agora aqui que é o maior problema, antes de enviar este valor para a página eu preciso fazer essa formatação de moeda para aparecer 1.200,50 ao invéz de 1200.50....

Me dá uma ajuda porque não to manjando adaptar aqueles códigos dessa forma que preciso.

Valeu mesmuuu!

Editado por andreia_sp
utilize tags para codigos, facilita a visualização. Andreia_Sp
Link para o comentário
Compartilhar em outros sites

  • 0
Guest Leandro Rodrigues

Ola, vamo lá...

Tente isso...

<!-- Por Leandro Rodrigues | leandro_proc@yahoo.com.br -->

<html>
<head>

<script type="text/javascript">

function formatar_moeda(campo, separador_milhar, separador_decimal, tecla) // Função valida quando for digitado um número valido
{
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? tecla.which : tecla.keyCode;
if (whichCode == 13) return true; // Tecla Enter
if (whichCode == 8) return true; // Tecla Delete
if (whichCode == 0) return true; // Tecla Delete
key = String.fromCharCode(whichCode); // Pegando o valor digitado
if (strCheck.indexOf(key) == -1) return false; // Valor inválido (não inteiro)

len = campo.value.length;
for(i = 0; i < len; i++)
if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != separador_decimal)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) campo.value = '';
if (len == 1) campo.value = '0'+ separador_decimal + '0' + aux;
if (len == 2) campo.value = '0'+ separador_decimal + aux;

if (len > 2)
{
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--)
{
if (j == 3)
{
aux2 += separador_milhar;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}

campo.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
campo.value += aux2.charAt(i);
campo.value += separador_decimal + aux.substr(len - 2, len);
}

return false;
}

function validaValor(campo) // Função valida quando campo for alterado por qualquer teclas não númerica com "backspace", "Delete", "Tab" etc...
{
var len = '';
var len2 = '';
var valor = '';
var valor2 = '';
var j = '';
var i = '';

len = campo.value.length;
for(i = 0; i < len; i++)
{
if ((campo.value.charAt(i) != ',') && (campo.value.charAt(i) != '.'))
{
valor += campo.value.charAt(i);
}
}

len = valor.length;

if (len == 0) campo.value = '0,00';
if (len == 1) campo.value = '0'+ ',' + '0' + valor;
if (len == 2) campo.value = '0'+ ',' + valor;

if (len > 9)
{
valor = valor.substr(0, 9);
len = valor.length;
for (j = 0, i = len - 3; i >= 0; i--)
{
if(j == 3)
{
valor2 += '.';
j = 0;
}
valor2 += valor.charAt(i);
j++;
}

campo.value = '';
len2 = valor2.length;
for (i = len2 - 1; i >= 0; i--)
{
campo.value += valor2.charAt(i);
}
campo.value += ',' + valor.substr(len - 2, len);
}

else if (len > 2)
{
for (j = 0, i = len - 3; i >= 0; i--)
{
if(j == 3)
{
valor2 += '.';
j = 0;
}
valor2 += valor.charAt(i);
j++;
}

campo.value = '';
len2 = valor2.length;
for (i = len2 - 1; i >= 0; i--)
{
campo.value += valor2.charAt(i);
}
campo.value += ',' + valor.substr(len - 2, len);
}

return false;
}

</script>

<body>
<form>
Valor:
<input type="text" name="valor" id="valor" length="15" onkeypress="return formatar_moeda(this,',','.',event)" onkeyup="return validaValor(this,event)">
</form>
</body>
</html>[/codebox]

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...