Есть ли способ преобразовать десятичные дроби 'nb-NO' в 'en-US' в javaScript или jQuery или в сетку кендо - PullRequest
0 голосов
/ 11 апреля 2020

"1 234 345,45678" Норвежский формат, при конвертации мне нужно 1 234 345,45678. Я изменяю его в сетке кендо, вызывая функцию в шаблоне клиента.

1 Ответ

0 голосов
/ 11 апреля 2020

Вы можете заменить , на . и все пробелы из строки, а затем преобразовать ее в Number и, наконец, получить строку в формате 'en-US', например:

const str = '1 234 345,45678'
const getFormattedString = (s, locale = 'en-US') => Number(str
  .replace(',', '.').replace(/\s+/g,'')).toLocaleString(locale, {minimumFractionDigits: 5})

console.log( getFormattedString(str) )

Преимущество преобразования его в Number заключается в том, что в будущем вам понадобится строка в другом формате, основанном на de-DE (немецкий формат) или любом другом Вы можете легко сделать это, передав параметр locale функции, например:

const str = '1 234 345,45678'
const getFormattedString = (s, locale = 'en-US') => Number(str
  .replace(',', '.').replace(/\s+/g,'')).toLocaleString(locale, {minimumFractionDigits: 5})

console.log( getFormattedString(str) )

// German uses comma as decimal separator and period for thousands
console.log( getFormattedString(str, 'de-DE') )

// India uses thousands/lakh/crore separators
console.log( getFormattedString(str, 'en-IN') )
...