Existe la función Number.toLocaleString , donde el primer argumento (configuración regional) se puede omitir para proporcionar la configuración regional del host actual.
Descrito como ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString ):
// Use the host default language with options for number formatting var num = 30000.65; console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})); // → "30,000.65" where English is the default language, or // → "30.000,65" where German is the default language, or // → "30 000,65" where French is the default language Ahora cambié en mi navegador los idiomas y seleccioné "holandés" en la parte superior (en chrome://settings/languages). Esto hizo que navigator.languages devolviera ["nl", "en-NL", "en-GB", "nl-NL", "en-US", "en"]
Sin embargo, cuando uso:
var num = 30000.65; console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})); El resultado es 30,000.65 , utilizando todavía la configuración regional en inglés. Si uso navigator.languages en lugar de indefinido, el resultado es el esperado. ( 30.000,65 ).
¿De dónde obtiene javascript la configuración regional? ¿Cómo puedo cambiar la actual de mi navegador? Incluso mi sistema operativo (ubuntu) está configurado en idioma holandés.