javascript - toLocaleString 不适用于 firebase cloudFunctions
问题描述
我在 Firebase Cloud Functions 上托管的节点 8 功能未按预期工作。我有一个toLocaleString
调用将所有参数传递给巴西货币格式,但我得到了默认EN
格式。
功能:
const value = 10825.20645
const formatted = value.toLocaleString('pt-br', {
style: 'currency',
currency: 'BRL',
decimals: 2
})
预期结果
R$ 10.825,21
CloudFunction 的实际结果
R$ 10,825.21
在浏览器上运行相同的功能工作正常
const value = 10825.20645
const formatted = value.toLocaleString('pt-br', {
style: 'currency',
currency: 'BRL',
decimals: 2
})
console.log(formatted) // R$ 10.825,21
解决方案
为了解决这个问题(部分,我会解释),我按照@hybrdthry911 的建议使用了INTL API 。默认情况下,nodejs 只加载 EN 语言。
const intl = require('intl')
const locale = intl.NumberFormat('pt-br', {
style: 'currency',
currency: 'BRL',
decimals: 2
})
const value = 10825.20645
const formatted = locale.format(value)
console.log(formatted) // R$10.825,21
但是,它仍然与我的预期结果不同。在浏览器中,货币符号后有一个空格,但使用的是 INTL。
- 预期的:
R$ 10.825,21
- 结果:
R$10.825,21
小问题,我去搜一下。
推荐阅读
- flutter - 不支持的类文件主要版本 61 错误
- uninstallation - 无法卸载 NetBeans 6.9.1;缺少目标组件
- php - Laravel 资源将我的关联数组转换为标准数组
- python - Django 将嵌套对象序列化为 json
- c# - ASP.Net\C# SQL 参数 DBNull
- rust - 在 Rust 中创建具有默认值的 `SecondaryMap`
- google-data-studio - 将字段重命名为 GDS 的 IF 条件
- algorithm - 给定一个中序线程二叉树和一个节点,如何找到该特定节点的父节点?
- python - 如何使用 pygame 混音器在两个设备中并行播放声音?
- xml - XML 界面中的低分辨率