js千分位實現方法大匯總
更新時間:2022年04月11日 14:51:22 作者:朽木·露琪亞
這篇文章主要介紹了js千分位實現方法大匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
千分位實現匯總
1.最最便捷的實現方式:toLocaleString()
注:只針對數字格式有效!
let num = 1234567890; num.toLocaleString(); //"1,234,567,890"
2.正則匹配
// 正則匹配方法一 let num = 1234567890; let reg = /\d{1,3}(?=(\d{3})+$)/g; String(num).replace(reg, '$&,'); //"1,234,567,890" // 正則匹配方法二 let num = 1234567890; let reg = /\B(?=(\d{3})+$)/g; String(num).replace(reg, ','); //"1,234,567,890" 說明:如果想知道具體怎樣的分組方式,可在 [https://regexper.com/](https://regexper.com/) 上測試 1. ?= 表示正向引用 2. $& 表示與正則表達式相匹配的內容,可查看replace() 3. \B 非單詞邊界
3.for循環(huán)
// for循環(huán)方法一 function format(num){ ? ? num = String(num);//數字轉字符串 ? ? let str = '';//字符串累加 ? ? for (let i = num.length- 1, j = 1; i >= 0; i--, j++){ ? ? ? ? if (j%3 == 0 && i != 0){ //每隔三位加逗號,過濾正好在第一個數字的情況 ? ? ? ? ? ? str += num[i] + ','; //加千分位逗號 ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? str += num[i]; //倒著累加數字 ? } ? ? return str.split('').reverse().join(""); //字符串=>數組=>反轉=>字符串 ? }? let num = 1234567890; format(num); //"1,234,567,890" // for循環(huán)方法二 function format(num){ ? ? num = String(num);//數字轉字符串 ? let str = '';//字符串累加 ? for (let i = num.length- 1, j = 1; i >= 0; i--, j++){ ? ? ? ? if (j%3 == 0 && i != 0){ //每隔三位加逗號,過濾正好在第一個數字的情況 ? ? ? ? ? str = ',' + num[i] + str; //加千分位逗號 ?? ??? ? continue;? ? ? ? } ? ? ? ? str = num[i] + str; //累加數字 ? } ? ? return str; } let num = 1234567890;? format(num); //"1,234,567,890"
4.slice+while循環(huán)
function format(num) { ? let arr = [], ? ? ? str = String(num), ? ? ? count = str.length; ? while (count >= 3) { ? ? arr.unshift(str.slice(count - 3, count)); ? ? count -= 3; ? } ? // 如果是不是3的倍數就另外追加到上去 ? if(str.length % 3) arr.unshift(str.slice(0, str.length % 3)); ? return arr.toString(); } let num = 1234567890;? format(num); //"1,234,567,890"
5.reduce
function format(num) { ? var str = num+''; ? return str.split("").reverse().reduce((prev, next, index) => { ? ? return ((index % 3) ? next : (next + ',')) + prev; ? }) } let num = 1234567890;? format(num); //"1,234,567,890"
當然也存在很多類似的寫法,不一一列舉了~
千分位分隔符
方法一
沒有小數位時
formatMoney(num) { ? ? let reg=/\d{1,3}(?=(\d{3})+$)/g; ?? ? return (num + '').replace(reg, '$&,'); ? }
方法二
有小數位時
formatThousand(money) { ? ? let res = money.toString().replace(/\d+/, function(num){ // 先提取整數部分 ? ? return num.replace(/(\d)(?=(\d{3})+$)/g, function($1){ ? ? ? return $1+","; ? ? }); ? }) ? return res; },
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
javascript 三種方法實現獲得和設置以及移除元素屬性
獲得和設置以及移除元素屬性在操作dom的過程中會經常遇到吧,為了提高工作的效率本文整理了一些快捷操作方法和大家一起分享,感興趣的朋友可以參考下哈2013-03-03頁面中實現setInterval和setTimeout效果示例詳解
這篇文章主要為大家介紹了不使用setTimeout和setInterval在頁面中實現setInterval和setTimeout效果示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09JS中showModalDialog關閉子窗口刷新主窗口用法詳解
這篇文章主要介紹了JS中showModalDialog關閉子窗口刷新主窗口用法,結合具體實例形式較為詳細的分析了showModalDialog常見用法與相關使用技巧,需要的朋友可以參考下2017-03-03javascript輕松實現當鼠標移開時已彈出子菜單自動消失
本文為大家詳細介紹下使用javascript實現當鼠標移開時已彈出子菜單自動消失,具體如下,感興趣的朋友不要錯過2013-12-12使用 Node.js 做 Function Test實現方法
這篇文章介紹了Node.js 做 Function Test實現方法,有需要的朋友可以參考一下2013-10-10