數字格式化,每三位數字之間加個逗號
阿新 • • 發佈:2021-12-01
方法一:數字轉字串正則多行全域性匹配。方便三行就能搞定。
let num = 217946745111; let pattern = /(\d)(\d{2})/mg; console.log(num.toString().replace(pattern,'$1' +','+'$2'));
為了以後使用封裝一下
let num = 217946745111; function formatData(num){ let res = num.toString(); if(res.length > 3){ let pattern = /(\d)(\d{2})/mg; return res.replace(pattern,'$1' +','+'$2') }else{ return num; } } console.log(formatData(num));
這段正則意思是
(\d)(\d{2})/mg把3個數字分為2組,多行全域性匹配,res.replace(pattern,'$1' +','+'$2')拼接匹配到的數字,之後會得到2,17。第二次拼接時會把第二次匹配到的第一組拼接到第一次的最後面之後會得到,2,179,46。 多次匹配類推就會得到全部格式化後的資料. 方法二:利用字串str.slice(-3)是取最後三位數字,並在前面新增‘,’號,str.slice(0,str.length-3)是取從字串開始到後三位截止,並迴圈每次改變原變數數值。let num = 217946745111; function formatData (num){ let res = (num || 0).toString(), result = ''; while(res.length>3){ result = ',' + res.slice(-3) + result; res = res.slice(0, res.length - 3); } if(res) result = res + result return result }