非常教程

JavaScript参考手册

Intl

Intl

Intl对象是ECMAScript Internationalization API的名称空间,它提供了对语言敏感的字符串比较,数字格式以及日期和时间格式。对于构造CollatorNumberFormat以及DateTimeFormat对象是属性Intl对象。此页面记录了这些属性以及国际化构造函数和其他语言敏感函数的通用功能。

属性

Intl.Collatorcollat​​ors的构造函数,启用语言敏感字符串比较的对象。Intl.DateTimeFormat可启用语言敏感日期和时间格式的对象的构造函数。Intl.NumberFormat用于启用语言敏感数字格式的对象的构造函数。

方法

Intl.getCanonicalLocales()返回规范化语言环境名称的方法。

区域识别和协商

国际化构造函数以及其他构造函数的几种语言敏感方法(参见另请参见)使用通用模式来标识语言环境并确定它们实际使用的方式:它们都接受localesoptions参数,并针对所请求的语言环境进行协商它们使用options.localeMatcher属性中指定的算法支持的语言环境。

localesargument

所述locales参数必须是保持的字符串BCP 47语言标签,或这样的语言标记的阵列。如果locales参数未提供或未定义,则使用运行时的默认语言环境。

BCP 47语言标签标识语言或语言环境(两者之间的差异是模糊的)。在它们最常见的形式中,它可以按照以下顺序包含:语言代码,脚本代码和国家代码,所有代码均用连字符分隔。例子:

  • "hi":印度语。
  • "de-AT":奥地利使用的德语。
  • "zh-Hans-CN":用中国文字写成的简体字。

可以在IANA语言子标签注册中找到BCP 47语言标签中标识语言,脚本,国家(地区)和(很少使用)变体的子标签。

BCP 47也允许扩展,其中一个对JavaScript国际化功能很重要:"u"(Unicode)扩展。它可用于请求的区域设置特定的行为的定制CollatorNumberFormatDateTimeFormat对象。例子:

  • "de-DE-u-co-phonebk":使用德语排序顺序的电话簿变体,它将未变元音扩展为字符对:ä→ae,ö→oe,ü→ue。
  • "th-TH-u-nu-thai":在数字格式中使用泰文数字(0,1,2,3,4,5,6,7,8,9)。
  • "ja-JP-u-ca-japanese":在日期和时间格式上使用日语日历,因此2013年表示为平成25年或平成25年。

区域协商

locales在删除所有Unicode扩展之后,该参数被解释为来自应用程序的优先请求。运行时将它与它可用的语言环境进行比较,并选择可用的最佳语言环境。存在两种匹配算法:"lookup"匹配器遵循BCP 47中指定的查找算法; 该"best fit"匹配器允许运行时提供一个区域设置这至少,但可能更多,适合于比查找算法的结果的请求。如果应用程序未提供locales参数,或者运行时没有与请求匹配的区域设置,则使用运行时的默认区域设置。可以使用options参数的属性来选择匹配器(见下文)。

如果所选语言标记具有Unicode扩展子字符串,那么现在将使用该扩展来定制构造对象或函数的行为。每个构造函数或函数仅支持为Unicode扩展定义的键的子集,并且支持的值通常取决于语言标记。例如,"co"密钥(排序规则)仅受支持Collator,并且其"phonebk"值仅支持德语。

options argument

所述options参数必须与构造和功能之间变化属性的对象。如果options参数未提供或未定义,则默认值将用于所有属性。

所有语言敏感的构造函数和函数都支持一个属性:localeMatcher属性的值必须是一个字符串"lookup"或者"best fit"用于选择上述某种语言环境匹配算法。

规范

规范

状态

评论

ECMAScript国际化API 1.0(ECMA-402)该规范中'Intl'的定义。

标准

初始定义。

ECMAScript国际化API 2.0(ECMA-402)该规范中'Intl'的定义。

标准

ECMAScript国际化API 4.0(ECMA-402)该规范中'Intl'的定义。

草案

在第4版中增加了Intl.getCanonicalLocales。

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari (WebKit)

Basic support

24

(Yes)

29 (29)

11

15

10.0

Feature

Android

Chrome for Android

Edge

Firefox Mobile (Gecko)

IE Phone

Opera Mobile

Safari Mobile

Basic support

No support

26

(Yes)

56.0 (56)

No support

No support

10.0

Intl
Intl 详细
Intl.Collator 详细
Intl.collator.compare 详细
Intl.Collator.prototype 详细
Intl.collator.resolvedOptions 详细
Intl.Collator.supportedLocalesOf 详细
Intl.DateTimeFormat 详细
Intl.dateTimeFormat.format 详细
Intl.dateTimeFormat.formatToParts 详细
Intl.DateTimeFormat.prototype 详细
Intl.dateTimeFormat.resolvedOptions 详细
Intl.DateTimeFormat.supportedLocalesOf 详细
Intl.getCanonicalLocales 详细
Intl.NumberFormat 详细
Intl.numberFormat.format 详细
Intl.NumberFormat.prototype 详细
Intl.numberFormat.resolvedOptions 详细
Intl.NumberFormat.supportedLocalesOf 详细
JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络