調整 Intl 的數字系統
前言
Intl 可以調整數字系統,在此把學習的過程做個紀錄'。
內容
範例如下
console.log( new Intl.NumberFormat('zh-TW', { style: 'unit', unit : 'liter', unitDisplay : 'long', numberingSystem : 'arab', }).format( 1234567890) );//١٬٢٣٤٬٥٦٧٬٨٩٠ 公升 // console.log( new Intl.NumberFormat('zh-TW', { style: 'unit', unit : 'liter', unitDisplay : 'long', numberingSystem : 'hans', }).format( 1234567890) );//1,234,567,890 公升 // console.log( new Intl.NumberFormat('zh-TW', { style: 'unit', unit : 'liter', unitDisplay : 'long', numberingSystem : 'mathsans', }).format( 1234567890) );//𝟣,𝟤𝟥𝟦,𝟧𝟨𝟩,𝟪𝟫𝟢 公升 //follow can't work in Chrome //console.log( Intl.Locale.prototype.getNumberingSystems() );
要改變數字系統是透過 numberingSystem ,能夠填的參數可以在 Intl.Locale.prototype.getNumberingSystems() ,根據區域會有自己的預設值, zh-TW 的預設值是 hans ,範例的第一例顯示的是"阿拉伯-印度數字",明顯的不是我們常見的數字,第三的範例看起來和 hans 一樣,但要注意數字 0 顯示得字型式不一樣的!最後的 Intl.Locale.prototype.getNumberingSystem() 被註解掉是因為它並不是每個瀏覽器都支援,至少我使用的 Chrome 目前並不支援,該作用應該是取得預設的數字系統參數,似乎真沒必要提供,因為地區本身就會有慣用的數字系統參數了,會要改的時候應該是要以非慣用的數字系統顯示才會用到,所以只要知道該地區的預設值是什麼就可以了,不能用函數詢問也沒差。
參考資料
[ developer.mozilla.org ] Intl.NumberFormat
Intl.Locale.prototype.getNumberingSystems()
沒有留言:
張貼留言