Number.toLocaleString() 带有自定义分隔符

dou*_*ald 2 javascript locale number-formatting

我需要在 JavaScript 中使用可能在运行时定义的分隔符来格式化数字。

千位分隔符和小数分隔符的组合可能与特定区域设置不匹配。

有没有办法在 JavaScript 中提供千位和小数分隔符toLocaleString()?或者NumberFormat明确使用我定义的值?

我看到使用区域设置代码的示例,有些使用其他值(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString)但这些不包括我的用例.

Lar*_*tis 7

一种选择是使用已知分隔符格式化为字符串,然后使用未知分隔符进行查找/替换。

function formatNum(num, separator, fraction) {
  var str = num.toLocaleString('en-US');
  str = str.replace(/\./, fraction);
  str = str.replace(/,/g, separator);
  return str;
}

formatNum(12342.2, "a", "x");
//12a342x2
Run Code Online (Sandbox Code Playgroud)