JavaScript數字每隔三位加一個逗號

admin發表於2018-12-01

為了人性化或者其他的目的,很多情況下可能會給數字每隔3位加一個逗號。

下面就通過程式碼例項介紹一下如何實現此功能。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var cutStr=function(str){  
  var newStr=new Array(str.length+parseInt(str.length/3));   
  var strArray=str.split("");
  newStr[newStr.length-1]=strArray[strArray.length-1];   
  var currentIndex=strArray.length-1;   
  for (var index = newStr.length - 1; index >= 0; index--) {
    if ((newStr.length - index) % 4 == 0) {
      newStr[index] = ",";
    }  
    else{   
      newStr[index] = strArray[currentIndex--];
    }   
  }   
  return newStr.join("")   
}  
var num=18000; 
console.log(cutStr(num+""));

以上程式碼實現了我們的分隔要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).var newStr=new Array(str.length+parseInt(str.length/3)),建立一個陣列物件,並將其長度設定為數字的長度和要新增分隔符個數之和,parseInt(str.length/3)可以計算出要新增的分隔符的個數。

(2).var strArray=str.split(""),將數字字串轉換為陣列。

(3).newStr[newStr.length-1]=strArray[strArray.length-1],將newStr陣列的最有一個元素設定為strArray陣列的最後一個元素。

(4).var currentIndex=strArray.length-1,宣告一個變數並將其值設定為陣列的元素的最大索引值。

(5).for(var index=newStr.length-1;index>=0;index--),遍歷陣列每一個元素,從索引值最大的一個開始。

(6).if((newStr.length-index)%4==0){newStr=","},如果和4取模為0,那麼就說明此位置應該是一個分割符,於是就將newStr的值設定為逗號。

(7).else{newStr=strArray[currentIndex--]},如果不是則只進行普通的賦值,而不是新增分隔符。

(8).return newStr.join(""),將陣列連線成字串。

二.相關閱讀:

(1).parseInt()參閱JavaScript parseInt()一章節。 

(2).split()參閱JavaScript split()一章節。 

(3).join()參閱JavaScript join()方法一章節。

最為再分享一個極為簡單的方式:

[JavaScript] 純文字檢視 複製程式碼
console.log( '123456789000'.replace(/\B(?=(?:\d{3})+\b)/g, ',') );

相關文章