這幾天整理的一下過往的文章和筆記斟珊,備份到了 Github 上苇倡,地址?? blog。
如果我的內(nèi)容幫助到了您囤踩,歡迎點個 Star
?????? 鼓勵鼓勵 :) ~~ ??
今天講一個常見的場景:在你輸入金額時旨椒,每三位數(shù)自動添加一個逗號。你可能需要對一段長數(shù)字進行一些基本的數(shù)字格式化高职。
轉(zhuǎn)換如下:
- 100 —> 100
- 1000 —> 1,000
- 1000000 —> 1,000,000
有三種相當簡單的方法可以在 JavaScript 中執(zhí)行此操作钩乍。
toLocaleString()
toLocaleString()
方法返回這個數(shù)字在特定語言環(huán)境下的表示字符串。
const addCommas = num => num.toLocaleString()
addCommas(100) // "100"
addCommas(1000) // "1,000"
addCommas(1000000) // "1,000,000"
Intl.NumberFormat
Intl.NumberFormat
是對語言敏感的格式化數(shù)字類的構(gòu)造器類怔锌。
const number = 123456.789
console.log(new Intl.NumberFormat('de-DE').format(number)) // 123.456,789
console.log(new Intl.NumberFormat('ja-JP').format(number)) // 123,456.789
console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number)) // 1,23,000
正則表達式
另一種選擇是使用正則表達式。如果我們的輸入是數(shù)字变过,我們將需要確保在應(yīng)用正則表達式之前將其隱式轉(zhuǎn)換為字符串埃元。
const addCommas = (num) => num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
addCommas(100) // "100"
addCommas(1000) // "1,000"
addCommas(1000000) // "1,000,000"