You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Number.toLocaleString('nb')在Microsoft Edge中不返回挪威语格式怎么办

结论

你的代码写法没有错误,该问题是浏览器底层国际化支持差异导致的:

  • 旧版使用EdgeHTML内核的Microsoft Edge没有内置完整的挪威书面语(nb)数字格式化规则,会自动降级到英语格式规则,因此输出千位分隔符为逗号、小数点为点的"1,000.00"
  • Chrome以及目前基于Chromium内核的新版Edge都搭载了完整的ICU国际化组件,对nb locale的格式支持符合预期,可正常输出"1 000,00"

兼容方案

如果需要适配旧版Edge场景,可以增加格式兜底判断:

function formatNbNumber(num) {
  const result = num.toLocaleString('nb', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
  });
  // 识别降级到英语格式的异常结果,手动替换为挪威语格式
  if (result.indexOf(',') > -1 && result.indexOf('.') > -1) {
    return result.replace(/,/g, ' ').replace('.', ',');
  }
  return result;
}

调用formatNbNumber(1000)即可在全版本浏览器得到符合预期的输出。


内容的提问来源于stack exchange,提问作者Tobias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:45:04