JavaScript 原生數字千分位格式化函數(多功能的toLocaleString)


Number.prototype.toLocaleString([locales [, options]])
toLocaleString()方法返回這個數字在特定語言環境下的表示字符串。
新的 locales options 參數讓應用程序可以指定要進行格式轉換的語言,並且定制函數的行為。


domestic

const a = 123456789

a.toLocaleString()
 // => "123,456,789"

a.toLocaleString('zh',{style:'decimal'}) 
 // => "123,456,789"

a.toLocaleString('zh',{style:'percent'})  
 // => "12,345,678,900%"

a.toLocaleString('zh',{style:'currency' , currency:'CNY' })
 // => "¥123,456,789.00"

a.toLocaleString('zh', { style: 'currency', currency: 'CNY', currencyDisplay: 'code' })
 // => "CNY 2,333,333.00"

a.toLocaleString('zh', { style: 'currency', currency: 'CNY', currencyDisplay: 'name' } 
// => "123,456,789.00人民幣"

// 如果不想有分隔符,可以指定options的useGrouping為false

a.toLocaleString('zh',{useGrouping: false, style: 'currency', currency: 'CNY'})
 // => "¥123456789.00"

a.toLocaleString('zh-Hans-CN-u-nu-hanidec', { useGrouping: false}) 
// => "一二三四五六七八九"

a.toLocaleString('zh-Hans-CN-u-nu-hanidec', { style: 'currency', currency: 'CNY', currencyDisplay: 'name'} )
 //=> "一二三,四五六,七八九.〇〇人民幣"

/*
其他options
minimumIntegerDigits
使用的整數數字的最小數目.可能的值是從1到21,默認值是1.

minimumFractionDigits
使用的小數位數的最小數目.可能的值是從 0 到 20;默認為普通的數字和百分比格式為 0;
 (如果列表中沒有提供則值為 2)。

maximumFractionDigits
使用的小數位數的最大數目。可能的值是從 0 到 20;
純數字格式的默認值是minimumfractiondigits 和 3 中大的那一個;
(如果列表中沒有提供則值為2);
百分比格式默認值是 minimumfractiondigits 和 0 中大的那一個。

minimumSignificantDigits
使用的有效數字的最小數目。可能的值是從1到21;默認值是1。

maximumSignificantDigits
使用的有效數字的最大數量。可能的值是從1到21;默認是 21.
*/

overseas

const number = 123456.789;

// 德國使用逗號作為小數分隔符,分位周期為千位
console.log(number.toLocaleString('de-DE'));
// → 123.456,789

// 在大多數阿拉伯語國家使用阿拉伯語數字
console.log(number.toLocaleString('ar-EG'));
// → ١٢٣٤٥٦٫٧٨٩

// 印度使用千位/拉克(十萬)/克若爾(千萬)分隔
console.log(number.toLocaleString('en-IN'));
// → 1,23,456.789

// nu 擴展字段要求編號系統,e.g. 中文十進制
console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
// → 一二三,四五六.七八九

// 當請求不支持的語言時,例如巴厘語,加入一個備用語言,比如印尼語
console.log(number.toLocaleString(['ban', 'id']));
// → 123.456,789

// 要求貨幣格式
console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
// → 123.456,79 €

// 日元不使用小數位
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// → ¥123,457

// 限制三位有效數字
console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
// → 1,23,000


免責聲明!

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



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