Mega Code Archive

 
Categories / JavaScript DHTML / Form Control
 

Money Format

/* JavaScript Unleashed, Third Edition by Richard Wagner and R. Allen Wyke  ISBN: 067231763X Publisher Sams CopyRight 2000 */ <html> <head> <title>Money Format</title> <script language= "JavaScript"> <!--begin script function moneyFormat(textObj) {    var newValue = textObj.value;    var decAmount = "";    var dolAmount = "";    var decFlag = false;    var aChar = "";        // ignore all but digits and decimal points.    for(i=0; i < newValue.length; i++) {       aChar = newValue.substring(i,i+1);       if(aChar >= "0" && aChar <= "9") {          if(decFlag) {             decAmount = "" + decAmount + aChar;          }          else {             dolAmount = "" + dolAmount + aChar;          }       }       if(aChar == ".") {          if(decFlag) {             dolAmount = "";             break;          }          decFlag=true;       }    }        // Ensure that at least a zero appears for the dollar amount.    if(dolAmount == "") {       dolAmount = "0";    }    // Strip leading zeros.    if(dolAmount.length > 1) {       while(dolAmount.length > 1 && dolAmount.substring(0,1) == "0") {          dolAmount = dolAmount.substring(1,dolAmount.length);       }    }        // Round the decimal amount.    if(decAmount.length > 2) {       if(decAmount.substring(2,3) > "4") {          decAmount = parseInt(decAmount.substring(0,2)) + 1;          if(decAmount < 10) {             decAmount = "0" + decAmount;          }          else {             decAmount = "" + decAmount;          }       }       else {          decAmount = decAmount.substring(0,2);       }       if (decAmount == 100) {          decAmount = "00";          dolAmount = parseInt(dolAmount) + 1;       }    }        // Pad right side of decAmount    if(decAmount.length == 1) {       decAmount = decAmount + "0";    }    if(decAmount.length == 0) {       decAmount = decAmount + "00";    }        // Check for negative values and reset textObj    if(newValue.substring(0,1) != '-' ||          (dolAmount == "0" && decAmount == "00")) {       textObj.value = dolAmount + "." + decAmount;    }    else{       textObj.value = '-' + dolAmount + "." + decAmount;    } } // end script--> </script> </head>     <body> <h1>Money Format</h1> <form name="form1"> <input type="text"    size=16    maxlength=16    name="data"> <input type="button"    name="CheckButton"    value="Format"    onClick="moneyFormat(document.form1.data)"> </form> </body> </html>