Number.toLocalString() js


地址鏈接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

 

 

 

語法

numObj.toLocaleString([locales [, options]])

參數

查閱瀏覽器兼容性部分,了解哪些瀏覽器支持 locales 和 options 參數,通過示例: 檢查 locales 和 options 參數的支持了解特征檢測。

注意: ECMAScript 國際化 API,在 Firefox 29 中得以實施,增加了 locales 參數的 Number.toLocaleString 方法。如果參數為 undefined,此方法返回本地操作系統指定的位數,而 Firefox 的早期版本中返回阿拉伯語數字。這一變化已被報告為向后影響的兼容性問題並可能會被盡快修復。(bug 999003)

locales

可選.縮寫語言代碼(BCP 47 language tag,例如:cmn-Hans-CN)的字符串或者這些字符串組成的數組. 關於參數locales的一般形式和解釋請參見Intl page. 下面的這些Unicode擴展鍵也是被允許的:

譯者注:下面擴展的使用方式是language[-scripts][-region]-u-nu-*,例如:zh-u-nu-hanidec(表示中文十進制數字) 

nu
要使用的編號系統。可能的值有:  "arab""arabext""bali""beng""deva""fullwide""gujr""guru""hanidec"(中文十進制數字)"khmr""knda""laoo""latn""limb""mlym""mong""mymr""orya""tamldec""telu""thai""tibt".
options

可選. 包含一些或所有的下面屬性的類:

localeMatcher
使用的local的匹配算法. 可能的值有"lookup"和"best fit"; 默認值是  "best fit". 有關此選項的信息, 請參見 Intl page.
style
格式化時使用的樣式.可能的值有“decimal”表示純數字格式 , “currency”表示貨幣格式, 和 "percent"表示百分比格式; 默認值是  "decimal".
currency
在貨幣格式化中使用的貨幣符號. 可能的值是ISO的貨幣代碼 (the ISO 4217 currency codes,) 例如 "USD" 表示美元,  "EUR" 表示歐元, or  "CNY"是人民幣 — 更多請參考  Current currency & funds code list. 沒有默認值,如果樣式是“currency”,必須提供貨幣屬性.
currencyDisplay
如何在貨幣格式化中顯示貨幣. 可能的值有 "symbol"表示使用本地化的貨幣符號例如€,  "code"表示使用國際標准組織貨幣代碼,  "name" 表示使用本地化的貨幣名稱,如  "dollar"; 默認值是  "symbol".
useGrouping
是否使用分組分隔符,如千位分隔符或千/萬/億分隔符.可能的值是true和false,默認值是true.

下面的屬性分為兩組:minimumintegerdigits,minimumfractiondigits,maximumfractiondigits作為一組,minimumsignificantdigits和maximumsignificantdigits作為一組.如果定義了第二組中的任意一個屬性,則忽略第一組的設置.

minimumIntegerDigits
使用的整數數字的最小數目.可能的值是從1到21,默認值是1.
minimumFractionDigits
使用的小數位數的最小數目.可能的值是從0到20;默認為普通的數字和百分比格式為0;默認為貨幣格式是由國際標准化組織列表(  ISO 4217 currency code list )提供(如果列表中沒有提供則值為2).
maximumFractionDigits
使用的小數位數的最大數目。可能的值是從0到20;純數字格式的默認值是minimumfractiondigits和3中大的那一個;貨幣格式默認值是minimumfractiondigits和國際標准化組織列表(如果列表中沒有提供則值為2)中大的那一個;百分比格式默認值是minimumfractiondigits和0中大的那一個。
minimumSignificantDigits
使用的有效數字的最小數目。可能的值是從1到21;默認值是1。
maximumSignificantDigits
使用的有效數字的最大數量。可能的值是從1到21;默認是minimumsignificantdigits.

返回值

返回一個語言環境下的表示字符串。

示例

使用 toLocaleString

在沒有指定區域的基本使用時,返回使用默認的語言環境和默認選項格式化的字符串。

var number = 3500; console.log(number.toLocaleString()); // Displays "3,500" if in U.S. English locale

檢查 locales 和 options 參數的支持

locales 和 options 參數目前還不是所有瀏覽器都支持的。在 ES5.1 和更新的實現中檢查支持情況,可以依靠使用非法參數時規定拋出的 RangeError 異常:

function toLocaleStringSupportsLocales() { var number = 0; try { number.toLocaleString('i'); } catch (e) { return e​.name === 'RangeError'; } return false; }

早於 ES5.1 的實現中,如果帶參數調用 toLocaleString 並不會拋出范圍異常。

在所有宿主環境下,包括那些支持比 ed 5.1 還早的 ECMA-262 的環境,都能有效檢測的方法是直接檢測 ECMA-402 中的其它特性,它指定 Number.prototype.toLocaleString 需要支持地區選項:

function toLocaleStringSupportsOptions() { return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function'); }

它測試全局的 Intl 對象,檢測它不是 null 並且有 NumberFormat 的方法。

使用 locales

這個示例展示了不同地區數字格式的差異。為了設置你的應用程序界面下使用的語言格式,請確保使用 locales 參數指定了使用的語言(可能還有一些備用語言):

var 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

使用 options

通過 toLocaleString 返回的結果可以通過 options 參數進行定制:

var number = 123456.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