toLocaleString не работает на firebase cloudFunctions - PullRequest
0 голосов
/ 22 марта 2019

Функция моего узла 8, размещенная в Firebase Cloud Functions, не работает должным образом. У меня 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

1 Ответ

0 голосов
/ 26 марта 2019

Чтобы решить эту проблему (частично я объясню), я использовал INTL API , как предложено @ hybrdthry911.По умолчанию nodejs загружает только EN lang.

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

Это небольшая проблема, я поищу.

...