5

Sto provando a formattare alcuni numeri con jQuery. Vorrei ottenere le impostazioni regionali dell'utente per valuta e numero, al fine di implementare il formato corretto (ottenere il separatore decimale).È caldo per ottenere le impostazioni internazionali dell'utente per la valuta in JavaScript o jQuery?

È possibile recuperare questi parametri con jQuery o JavaScript?

+0

Possibile duplicato di [Come formattare numeri e date in base alle impostazioni locali dell'utente?] (Http://stackoverflow.com/questions/11205873/how-to-format-numbers-and-dates-based-on -user-locale-settings) – Abhitalks

+0

'2343.4 .toLocaleString()' ti mostrerà il numero decimale nella maggior parte dei browser, e migliaia almeno in chrome ... – dandavis

risposta

4

Usa toLocaleString() con 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

Nota che:

  • Non è come "ottenere impostazioni regionali", ma "output in impostazioni regionali".
  • Il recupero della valuta dipende dal caso d'uso.
  • Se si desidera determinare dinamicamente le impostazioni internazionali, utilizzare navigator.language.
  • Ci sono molti altri mezzi piuttosto che questo approccio nativo; per i principianti, dai un'occhiata a accounting.js o Stack Overflow answers like this uno.
+1

holy cow, quando è entrato di nascosto in JS? ha persino il supporto per IE11. fantastico, semplicemente fantastico. – dandavis

+0

Questo non risponde alla domanda. La domanda era come recuperare le impostazioni di valuta, non come formattare una valuta. – raarts

+0

@raarts: La formattazione era il vero obiettivo ("formattare alcuni numeri"), e poiché non esiste un modo (nativo) per produrre parametri applicabili, questa è stata la prima nota che ho dato. Inoltre, se hai bisogno di quei "parametri regionali" a tutti i costi, puoi sempre estrarli: 'let decimalSeparator = (1.23) .toLocaleString (navigator.language, {style: 'currency', currency: 'EUR'}). Match (/ 1() 23 /.) [1]; '. Tuttavia, si noti che l'ho già messo in prospettiva, basta leggere "Notare che". – dakab