1. 程式人生 > >js方法格式化數字,加入千分符,並可以指定小數點位數,支援負數

js方法格式化數字,加入千分符,並可以指定小數點位數,支援負數

//js方法格式化數字,加入千分符,並可以指定小數點位數
function number(s, n) {
  n = n >= 0 && n <= 20 ? n : 2;
  s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  var l = s
    .split(".")[0]
    .split("")
    .reverse(),
    r = s.split(".")[1];
  r = r == null ? "" : "." + r;
  var t = "";
  console.log
(l) if (l[l.length - 1] === '-') {//負數不需要分隔號, for (var i = 0; i < l.length; i++) { if (l[i]==='-') { t += l[i]+"" continue } //不是陣列的倒數第二個元素才加"," ["0", "4", "5", "-"] t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length-1 ? "," : ""); //i + 1 != l.length
會變成-,540.00,因為在5時元素位置2+13非陣列長度 //t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : ""); } } else { for (var i = 0; i < l.length; i++) { t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : ""); } } return ( t .split("") .reverse
() .join("") + r ); }