JavaScript實現千位分隔符
阿新 • • 發佈:2020-11-19
將普通的數字轉換為帶千位分隔符格式的數字字串是一個很常見的問題,
千位分隔符格式的規則是數字的整數部分每三位一組,以“,”分節,小數部分不分節。
實現思路一
將數字轉換為字元陣列,再迴圈整個陣列,每三位新增一個分隔逗號,最後再合併成字串。因為分隔符在順序上是從後往前新增,所以方便起見可以先把陣列倒敘,新增完之後再倒敘回來,就是正常的順序了。
function numFormat(num){ num = num.toString().split("."); //分隔小數點 var arr = num[0].split("").reverse(); var res = [];for(var i=0,len= arr.length;i<len;i++){ if(i%3===0i!==0){ res.push(","); } res.push(arr[i]); } res.reverse();
if(num[1]){ //如果有小數部分的話,新增小數部分 res = res.join("").concat("."+num[1]);
}else{ res = res.join("")
} return res }
實現思路二
使用正則表示式和replace表示式
replace 語法:str.replace(regexp|substr, newSubStr|function)
(程式碼還沒有搞懂,確實有點難以理解。。。嗚嗚嗚)
function numFormat(num){ var res = num.toString().replace(/\d+/, function(n){ return n.replace(/(\d)(?=(\d{3})+$)/g, function($1){ return $1+","; }) })return res; }