Formatando moeda com javascript

5 11 2007

Quem nunca perrengou pele net a procura de um algoritmo eficiente para formatar moeda em um campo texto?

Bom, se assim como eu você não tem tempo e/ou não esta disposto a passar dias e noites a fio desenvolvendo seu próprio script, vale a pena usar esse ai embaixo. Eu catei na net ha um tempo atrás e tem sido muito útil para aplicações mais simples. Ele cria uma mascara de moeda enquanto estamos digitando.

Não sei quem é o autor, pois como eu disse peguei na net. Só fiz uma pequena alteração, pois o script original não permitia a entrada de teclas que não fossem numéricas, assim era complicado corrigir um numero quando eu digitava errado.

Script:


function formataMoeda(objTextBox,SeparadorMilesimo, SeparadorDecimal,e){
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
// 13=enter, 8=backspace as demais retornam 0(zero)
// whichCode==0 faz com que seja possivel usar todas as teclas como del, setas, etc
if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8))
return true;
key = String.fromCharCode(whichCode); // Valor para o código da Chave

if (strCheck.indexOf(key) == -1)
return false; // Chave inválida
len = objTextBox.value.length;
for(i = 0; i < len; i++)
if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal))
break;
aux = '';
for(; i 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += SeparadorMilesimo;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
objTextBox.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
objTextBox.value += aux2.charAt(i);
objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
}
return false;
}

Chamada ao script:

Como podem perceber este script apresenta um erro de sintaxe, esse erro acontece pois o plugin do wordpress não esta escapando corretamente o código. No link abaixo voces encontrarão o mesmo post com o script corrigido.
http://blog.zuntto.com/javascript-formatando-moeda-com-mascara/

http://www.couto.zuntto.com