欢迎光临,了解微信小程序开发,就上易用通!

使用ES6新特性开发微信小程序(8)

发布:2018-01-24 14:46浏览: 来源:网络 作者:tianshu

ES6新增了很多对于国际化的支持,比如时间格式,货币格式,数字格式等。

Internationalization & Localization(国际化与本地化)是指修改软件使之能适应目标市场的语言、地区差异以及技术需要。
国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。

Intl 对象是 ECMAScript 国际化 API 的一个命名空间,它提供了精确的字符串对比,数字格式化,日期和时间格式化。Collator,NumberFormat 和 DateTimeFormat 对象的构造函数是 Intl 对象的属性。


    Intl.Collator(): 语言敏感的字符串对比功能对象,collators 的构造函数

    Intl.DateTimeFormat():语言敏感的日期和时间格式化功能对象的构造函数

    Intl.NumberFormat():语言敏感的数字格式化功能对象的构造函数


Collation(排序规则)

对于字符串集合的排序和检索,可以根据地区和Unicode为参数进行排序。


  1.  
  2.     var list = ["ä", "a", "z"]
  3.     var l10nDE = new Intl.Collator("de")
  4.     var l10nSV = new Intl.Collator("sv")
  5.     l10nDE.compare("ä", "z") === -1
  6.     l10nSV.compare("ä", "z") === +1
  7.     console.log(list.sort(l10nDE.compare)) //  输出: [ "a", "ä", "z" ]
  8.     console.log(list.sort(l10nSV.compare)) //  输出: [ "a", "z", "ä" ]
  9.  



Number Formatting(数字格式化)

可以根据数字分组和本地的分隔符,对数字进行格式化。


  1.  
  2.     var l10nEN = new Intl.NumberFormat("en-US")
  3.     var l10nDE = new Intl.NumberFormat("de-DE")
  4.     console.log(l10nEN.format(1234567.89)); //  输出: 1,234,567.89
  5.     console.log(l10nDE.format(1234567.89)); //  输出: 1.234.567,89
  6.  



Currency Formatting(货币格式化)

可以根据数字分组、本地的分隔符和附加的货币符号,对数字进行格式化。


  1.  
  2.     var l10nUSD = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" })
  3.     var l10nGBP = new Intl.NumberFormat("en-GB", { style: "currency", currency: "GBP" })
  4.     var l10nEUR = new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" })
  5.     console.log(l10nUSD.format(100200300.40)); //  输出: $100,200,300.40
  6.     console.log(l10nGBP.format(100200300.40)); //  输出: £100,200,300.40
  7.     console.log(l10nEUR.format(100200300.40)); //  输出: 100.200.300,40 €
  8.  



Date/Time Formatting(日期/时间格式化)

可以根据本地的顺序和分隔符格式化时间和日期。

  1.  
  2.     var l10nEN = new Intl.DateTimeFormat("en-US")
  3.     var l10nDE = new Intl.DateTimeFormat("de-DE")
  4.     console.log(l10nEN.format(new Date("2015-01-02"))); // 输出: 1/2/2015
  5.     console.log(l10nDE.format(new Date("2015-01-02"))); // 输出: 2.1.2015
  6.  





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。