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>
Related examples in the same category