js實現的數字每隔3位就加逗號程式碼例項

antzone發表於2017-03-22

在實際應用中,大家可能見過這樣的效果,就是數字每隔三位加一個逗號,並且小數點後面保留兩位小數,如果是整數的話,會自動新增小數點,並且後面會添補兩個0,這個效果常用在金錢的數額中,下面就分享一段能夠實現此功能的程式碼。

程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>螞蟻部落</title> 
<script type="text/javascript">  
function outputmoney(number){  
  number = number.replace(/\,/g, "");  
  if(isNaN(number) || number == ""){ 
    return "";  
  }  
  number = Math.round(number * 100) / 100;  
  if(number < 0){ 
    return '-'+outputdollars(Math.floor(Math.abs(number)-0)+'')+outputcents(Math.abs(number)-0); 
  }   
  else{ 
    return outputdollars(Math.floor(number-0)+'')+outputcents(number-0);  
  }  
}  
//格式化金額  
function outputdollars(number){  
  if(number.length <= 3){ 
    return (number == '' ? '0' : number);  
  } 
  else{  
    var mod = number.length % 3;  
    var output = (mod == 0 ? '' : (number.substring(0, mod)));  
    for (i = 0; i < Math.floor(number.length / 3); i++) {  
      if ((mod == 0) && (i == 0)){ 
        output += number.substring(mod + 3 * i, mod + 3 * i + 3);  
      }  
      else{ 
        output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);  
      } 
    }  
    return (output);  
  }  
}  
function outputcents(amount){  
  amount = Math.round(((amount) - Math.floor(amount)) * 100);  
  return (amount < 10 ? '.0' + amount : '.' + amount);  
}  
window.onload=function(){ 
  var otxt=document.getElementById("txt"); 
  otxt.onblur=function(){ 
    this.value=outputmoney(this.value); 
  } 
} 
</script>  
</head>  
<body>  
<input type="text" id="txt"/>  
</body>  
</html>

以上程式碼中,在文字框輸入數字,當文字框失去焦點的時候,能夠實現格式化效果。

相關文章