5

Я пытаюсь отформатировать некоторые цифры с помощью jQuery. Я хотел бы получить региональные настройки пользователя для валюты и количества, чтобы реализовать правильный формат (получить десятичный разделитель).Горячие, чтобы получить региональные настройки пользователя для валюты в JavaScript или jQuery?

Возможно ли получить эти параметры с помощью jQuery или JavaScript?

+0

Возможный дубликат [Как форматировать числа и даты на основе пользовательских настроек локали?] (Http://stackoverflow.com/questions/11205873/how-to-format-numbers-and-dates-based-on -user-locale-settings) – Abhitalks

+0

'2343.4 .toLocaleString()' покажет вам десятичное число в большинстве браузеров и тысячи в по крайней мере хром ... – dandavis

ответ

4

Использование toLocaleString() с style:'currency':

var amount = 123.56; 
 
alert(
 
    'German: ' + amount.toLocaleString('de-DE',{style:'currency',currency:'EUR'}) + ', ' + 
 
    'American: ' + amount.toLocaleString('en-US',{style:'currency',currency:'EUR'}) 
 
); 
 
// German: 123,56 € 
 
// American: €123.56

Обратите внимание, что:

  • Это не похоже на «получение региональных настроек», но «вывод в региональных настройках».
  • Получение валюты зависит от вашего прецедента.
  • Если вы хотите, чтобы ваш язык был определен динамически, используйте navigator.language.
  • Есть много других средств, а не этот родной подход; для начала, посмотрите на accounting.js или переполнение стека answers like this один.
+1

святая корова, когда это прокралось в JS? даже имеет поддержку IE11. удивительный, просто потрясающий. – dandavis

+0

Это не отвечает на вопрос. Вопрос заключался в том, как получить настройки валюты, а не как форматировать валюту. – raarts

+0

@raarts: Форматирование было фактической целью («форматировать некоторые числа»), и поскольку нет (собственного) способа вывода применимых параметров, это была первая заметка, которую я дал. Кроме того, если вам нужны эти «региональные параметры» любой ценой, вы всегда можете их извлечь: 'let decimalSeparator = (1.23) .toLocaleString (navigator.language, {style: 'currency', currency: 'EUR'}). (/ 1() 23 /.) [1]; '. Однако, обратите внимание, что я уже поставил это в перспективу, просто прочитал «Обратите внимание, что». – dakab