Javascript String.toLocaleUpperCase():设置Node.js上的区域设置
JavaScript字符串Javascript String.toLocaleUpperCase():设置Node.js上的区域设置,javascript,node.js,internationalization,ecmascript-intl,Javascript,Node.js,Internationalization,Ecmascript Intl,JavaScript字符串toLocaleUpperCase()方法应该考虑不同地区的大小写映射,比如土耳其语(我不是无点i的映射者,而是土耳其语中的点İ的映射者) 然而,似乎只从操作系统捕获了区域设置:我看不到设置区域设置的方法。因此,如果我使用的是en-US操作系统,并且想要tolocalueppercase()tr中的土耳其字符串,它将返回en-US版本(dotless I,而不是虚线) 假设我使用的是用INTL()编译的Node.js,那么如何将语言环境定义为tolocalueupper
toLocaleUpperCase()
方法应该考虑不同地区的大小写映射,比如土耳其语(我不是无点i的映射者,而是土耳其语中的点İ的映射者)
然而,似乎只从操作系统捕获了区域设置:我看不到设置区域设置的方法。因此,如果我使用的是en-US操作系统,并且想要tolocalueppercase()
tr中的土耳其字符串,它将返回en-US版本(dotless I,而不是虚线)
假设我使用的是用INTL()编译的Node.js,那么如何将语言环境定义为
tolocalueuppercase()
?这现在还不是一个很好的答案。但是ECMA-402现在指定了String.prototype.tolocalueppercase
的行为(从规范的第二版开始)。ECMA-402将函数更改为采用locale
参数(undefined
、字符串或类似于arraylike的locale)——类似于Number.prototype.toLocaleString
和ECMA-262中的各种其他对语言环境敏感的函数,当ECMA-402进行修改时——其行为与该语言环境一致。一旦节点实现了该(),您就可以简单地进行更改
var str = "bira";
str.toLocaleUpperCase(); // "BIRA"
到
就在你的路上
(免责声明:我一点也不懂土耳其语,我只是从土耳其语单词列表中选择了一个包含“I”的单词,我假设区分区域设置的大写字母的工作方式与我预期的一样,用于上面的示例。)注意,每个进程可以有不同的区域设置,例如,
locale=trtr.UTF-8
。查看Intl
的文档,不清楚它是否是可以实例化并用作字符串操作上下文的对象。。。但这可能是你想看的方向。谢谢@david,我会检查一下。但是,我希望能够根据客户机请求切换区域设置。通过为每个进程设置区域设置,它将使用该区域设置永久运行。对于适当国际化的软件,有必要根据不同的用户请求使用tolocalueppercase()
。我将看看这是否可以在运行时动态更改。
var str = "bira";
str.toLocaleUpperCase("tr-TR"); // BİRA