在前端開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要格式化金額的需求,這時(shí)候就需要使用javascript來(lái)實(shí)現(xiàn)了。下面我們將介紹幾種常用的javascript格式化金額的方法。
方法一:使用toLocaleString()
var num = 100000000.12; var formattedNum = num.toLocaleString('zh-CN', { minimumFractionDigits: 2 }); console.log(formattedNum); // "100,000,000.12"
方法二:使用正則表達(dá)式
var num = 100000000.12; var formattedNum = num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); console.log(formattedNum); // "100,000,000.12"
方法三:使用自定義函數(shù)
function formatMoney(num) { num = num.toString().replace(/\$|\,/g,''); if (isNaN(num)) num = "0"; sign = (num == (num = Math.abs(num))); num = Math.floor(num*100+0.50000000001); cents = num%100; num = Math.floor(num/100).toString(); if (cents< 10) cents = "0" + cents; for (var i = 0; i< Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3)); return (((sign)?'':'-') + num + '.' + cents); } var formatedNum = formatMoney(100000000.12); console.log(formatedNum); // "100,000,000.12"
總結(jié):以上三種方法均可以實(shí)現(xiàn)金額格式化,其中第一種方法簡(jiǎn)潔明了,但需要注意跨瀏覽器兼容性問(wèn)題;第二種方法使用了正則表達(dá)式,可以較好地應(yīng)對(duì)各種情況;第三種方法可以自定義各種格式化方式,但代碼量較多。在實(shí)際項(xiàng)目中可以根據(jù)具體需求靈活選擇。