JS數字每三位加逗號的最簡單方法


<script> function thousands(num){ var str = num.toString(); var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g; return str.replace(reg,"$1,"); } alert(thousands(1234567.1234567)); alert(thousands(7654321)); </script>



方法一【原生】:

JavaScript
<script> function thousands(num){ return num.toLocaleString(); } alert(thousands(1234567.1234567)); alert(thousands(7654321)); </script>

這個方法最為簡單,使用JS原生實現。toLocaleString在將數字轉換為字符串的同時,會使用三位分節法進行顯示。如果是浮點數,只保留小數點后三位數,並進行了四舍五入。如果對結果要求不高,這個算是最簡單的實現。

方法二【正則表達式】:

JavaScript
<script> function thousands(num){ var str = num.toString(); var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g; return str.replace(reg,"$1,"); } alert(thousands(1234567.1234567)); alert(thousands(7654321)); </script>
運行一下試試

利用正則表達式,也是代碼量較少的一種方法。如果僅考慮整數,或指定位數的小數,可以更加簡潔:

保留兩位小數

JavaScript
num.toFixed(2).toString().replace(/(\d)(?=(\d{3})+\.)/g,"$1,");

保留整數

JavaScript
num.toFixed(0).toString().replace(/(\d)(?=(?:\d{3})+$)/g,"$1,");

 

方法三【字符串打散】:

JavaScript
<script> function thousands(num){ var splits=[],res=[]; var splits = num.toString().split("."); splits[0].split("").reverse().map(function(item,i){ if(i%3 == 0 && i!=0){ res.push(","); } res.push(item); }); return res.reverse().join("")+(splits.length>1 ? "."+splits[1] : ""); } alert(thousands(1234567.1234567)); alert(thousands(7654321)); </script>

把數字分成整數和小數兩部分,然后把整數部分差成單字符數組,反向排列后每3位插入一個逗號(因為逗號是從后向前加)。然后再一次反向排列並合成字符串,加上小數部分就完成了。

 

如果有保留小數位數的要求,以上方法都可以對參數 num 使用 toFixed(n) 方法,toFixed() 方法可把 Number 四舍五入為指定小數位數的數字。參數 n 規定小數的位數,是 0 ~ 20 之間的值,包括 0 和 20,有些實現可以支持更大的數值范圍。如果省略了該參數,將用 0 代替。

例如,保留兩位小數:

JavaScript
<script> function thousands(num){ num = num.toFixed(2);//保留兩位小數 var str = num.toString(); var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g; return str.replace(reg,"$1,"); } alert(thousands(1234567.1234567)); </script>




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM