在firebase云函数中执行时,下面的命令返回美式格式,而不是本地化格式。但是,它在浏览器中工作得很好。
price.toLocaleString("pt-BR", {
maximumFractionDigits: 2
});toLocaleString()是否可以在防火墙云函数中正常工作?
更新:
let price = 1456.21
let formattedPrice = price.toLocaleString("pt-BR", {maximumFractionDigits: 2});
//Value of formattedPrice expected: 1.456,21 (it works in browsers).
//Value of formattedPrice returned in Firebase Cloud Functions: 1,456.21可能是与Node的默认ICU有关(-with=small)。为了支持国际化,它的价值似乎应该是--具有-intl=完全-icu。
发布于 2018-03-01 22:22:45
在构建云函数中使用的节点版本时,不应该依赖特殊标志。相反,您可以使用一个处理格式化区域设置字符串的模块。例如,您可以使用英特模块:
npm install intl使用如下:
const intl = require('intl')
const format = intl.NumberFormat("pt-BR", {maximumFractionDigits: 2})
console.log(format.format(price))发布于 2019-12-31 14:34:32
⚠️intl似乎不再激活/支持(最后一个版本是4yo.)。
我已经实现了添加真正的intl如下:
full-icu依赖项:npm install full-icu --saveNODE_ICU_DATA env var和值node_modules/full-icuFurter更新不会删除这个env,而且我成功地从鲁迅中使用了Intl apis。
https://stackoverflow.com/questions/49012433
复制相似问题