javascript - 数字 : any way to determine the locale?

标签 javascript html locale number-formatting

我有一个脚本,可以扫描网页以将格式应用于数字。例如,如果它发现一个大于 50000 的数字,它将应用红色背景。

该脚本在使用点作为小数分隔符的语言中运行良好(例如英语 12,345.67 将被解释为 12345.67),但在使用逗号作为小数分隔符的语言中则失败(法语 >1,234 将被解释为 1234 而不是 1.234)。

我的问题:有没有办法检测网页区域设置,并相应地解释数字?

最佳答案

网页中数值的格式不是基于客户端系统的设置,而是由页面作者决定,可能基于目标或预期受众的语言。

浏览器不会根据系统设置重新格式化页面中文本中的数字。运气好的话,可能会有 lang指示内容语言的属性,但我认为这不会可靠,甚至不会广泛实现。

可以收集页面中的所有数字并根据以下内容猜测分隔符:

  1. 如果有任何数字匹配 /^[+-]?0?\.\d/那么小数分隔符是句点,千位分隔符是逗号
  2. 如果有任何数字匹配 /^[+-]?0?,\d/那么小数分隔符是逗号,千位分隔符是句点
  3. 如果有任何数字匹配 /\.\d\d\d\./那么千位分隔符是句点,小数分隔符是逗号
  4. 如果有任何数字匹配 /,\d\d\d,/那么千位分隔符是逗号,小数分隔符是句点

等等。

关于javascript - 数字 : any way to determine the locale?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14762467/

相关文章:

javascript - 文本框在滚动模式中失去焦点

java - 区域设置 - 如何获取区分大小写的值?

jsf - JSF 应用程序中的动态语言环境切换?

java - 根据当前设备语言更改上下文语言

javascript - 如何根据DIV的宽度自动滚动div中的文本

javascript - 我如何显示导航栏菜单项和搜索按钮表单内联 block

javascript - 具有函数绑定(bind)的 Angular 日期选择器指令

javascript - 从 "onload"处理程序调用 canvas.drawWindow() 可以吗?

c# - 如何在 C# 中从 activex 或 dll 调用 javascript 函数

html - 页面底部显示的 Css 三 Angular 形