js千分位分隔,數字貨幣化方法學習記錄
阿新 • • 發佈:2020-12-01
js千分位分隔,數字貨幣化—4種方法(含正則)
方法1-整數貨幣化
// 整數貨幣化 function intCurrency(num) { var reg = new RegExp("^[\\d]+[\\d|.]+$", 'g') if (!reg.test(num)) { return "只能為整數或小數!"; } var numString = parseInt(num).toString(); var len = numString.length; if (len < 3) { return num; } var n = len % 3; if (n > 0) { return numString.slice(0, n) + "," + numString.slice(n, len).match(/\d{3}/g).join(","); } else { return numString.slice(n, len).match(/\d{3}/g).join(","); } } console.group("------------整數貨幣化") console.log(intCurrency("abs")) console.log(intCurrency("0")) console.log(intCurrency("10")) console.log(intCurrency("100")) console.log(intCurrency("1000")) console.log(intCurrency("10000")) console.log(intCurrency("100000")) console.log(intCurrency("1000000")) console.log(intCurrency("10000000")) console.log(intCurrency("100000000")) console.log(intCurrency("1000000000")) console.log(intCurrency("1000000000.0")) console.log(intCurrency("1000000000.00")) console.log(intCurrency("1000000000.000"))
方法2-小數貨幣化
// 整數部分 function intCurrency(num) { if (num === undefined) { return ''; } var len = num.length; if (len < 3) { return num; } var n = len % 3; if (n > 0) { return num.slice(0, n) + "," + num.slice(n, len).match(/\d{3}/g).join(","); } else { return num.slice(n, len).match(/\d{3}/g).join(","); } } // 小數部分 function decimalCurrency(num) { if (num === undefined) { return ''; } var len = num.length; // 小數部分長度 if (len < 3) { // 小於三位數 return num; } var n = len % 3; if (n > 0) { // 位數不是3的倍數 return num.slice(0, len - n).match(/\d{3}/g).join(',') + ',' + num.slice(len - n); } else { return num.slice(0, len - n).match(/\d{3}/g).join(',') } } // 貨幣化 function currency(num) { var integerPart; // 整數部分 var decmialPart; // 小數部分 num = num.toString(); if (num.includes(".")) { integerPart = num.split('.')[0]; decmialPart = num.split('.')[1]; } else { integerPart = num; } return intCurrency(integerPart) + (decmialPart !== undefined ? ('.' + decimalCurrency(decmialPart)) : ''); } console.group("------------整數或小數貨幣化") console.log(currency("0")) console.log(currency("10")) console.log(currency("100")) console.log(currency("1000")) console.log(currency("10000")) console.log(currency("100000")) console.log(currency("1000000")) console.log(currency("10000000")) console.log(currency("100000000")) console.log(currency("1000000000")) console.log(currency("1000000000.0")) console.log(currency("1000000000.00")) console.log(currency("1000000000.000")) console.log(currency("1000000000.0000")) console.log(currency("1000000000.00000"))
方法3-整數正則貨幣化1
// 直接使用正則 function currency(num) { num = parseInt(num); return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); } console.group("------------取整數,正則貨幣化1") console.log(currency("0")) console.log(currency("10")) console.log(currency("100")) console.log(currency("1000")) console.log(currency("10000")) console.log(currency("100000")) console.log(currency("1000000")) console.log(currency("10000000")) console.log(currency("100000000")) console.log(currency("1000000000")) console.log(currency("1000000000.0")) console.log(currency("1000000000.00")) console.log(currency("1000000000.000")) console.log(currency("1000000000.0000")) console.log(currency("1000000000.00000"))
方法4-整數正則貨幣化2
// 直接使用正則 function currency(num) { num = parseInt(num); return num.toString().replace(/(?=(\B)(\d{3})+$)/g, ','); } console.group("------------取整數,正則貨幣化2") console.log(currency("0")) console.log(currency("10")) console.log(currency("100")) console.log(currency("1000")) console.log(currency("10000")) console.log(currency("100000")) console.log(currency("1000000")) console.log(currency("10000000")) console.log(currency("100000000")) console.log(currency("1000000000")) console.log(currency("1000000000.0")) console.log(currency("1000000000.00")) console.log(currency("1000000000.000")) console.log(currency("1000000000.0000")) console.log(currency("1000000000.00000"))
正則校驗
// 正整數或小數 /^[0-9]+(\.[0-9]+)?$/g // 正、負整數或小數,也可不輸入正負 /^(\+|-)?\d+(\.\d+)?$/g
轉載於:https://blog.csdn.net/Kindergarten_Sir/article/details/110382037