µØÖ·Á´½Ó£º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À©Õ¹¼üÒ²ÊDZ»ÔÊÐíµÄ:
ÒëÕß×¢:ÏÂÃæÀ©Õ¹µÄʹÓ÷½Ê½ÊÇ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
Number.toLocalString() ?js
ÔÎĵØÖ·£ºhttps://www.cnblogs.com/iroading/p/10411579.html