如何使用千位分隔符(逗号)表示web网页中的大数字?

您所在的位置:网站首页 千位分隔符用什么表示 如何使用千位分隔符(逗号)表示web网页中的大数字?

如何使用千位分隔符(逗号)表示web网页中的大数字?

2024-07-09 16:35| 来源: 网络整理| 查看: 265

http://www.zhangxinxu.com/wordpress/?p=6418

(本文源自张鑫旭老师的博文:《请使用千位分隔符(逗号)表示web网页中的大数字》,上方为原文连接)

————————————————————————————————————————————————————

1、大数值千位分隔符(逗号)的作用

在西方,在表示很大的数字的时候,会以每3位为一个间隔进行分隔,分隔的符号就是英文逗号,由于中文里面,第3位是“千”,因此,数字中的这个“逗号”也被称为“千位分隔符”。

之所以会以每3位进行分隔,是英文的读数有关的,举个例子:英语的987,654,321读法是: nine hundred and eighty-seven million six hundred and fifty-four thousand three hundred and twenty-one。

其关键的数值单位,如million,thousand正好就是千分分隔符的位置。可见这种分隔是和西方数值阅读方法相辅相成的。

但是对于中文用户而言,这种风格反而是一种尴尬。我们的大数值单位主要就是“万”和“亿”,如果按照这种标准进行分割的话,应该是每4位进行分隔。所以,当我们一开始看到3位分隔的数字的时候,一定会奇怪这分隔的方式有些不按套路。

由于这种语言上的差异,我们大多数人对这种千位分隔并不感冒,这里的大多数人就包括产品经理以及前端开发,比方说一件商品,一万多块钱,直接就显示一个完整的数字12888,然后就发现变成手机号了,就加个,然后就没有然后了,看上去皆大欢喜,实际上牺牲了一定的用户体验以及带来了一定的语义化障碍。

2. 数值千位分隔与语义化

无论是什么软件和设备,只要你的数字是以标准的千位分隔符表示,一定会是认为是数值,也就是明确了语义。

语义的明确不仅对搜索引擎友好,对于其他辅助阅读设备而言,也是非常有好处的。

拿屏幕阅读器的无障碍访问来说,如果我们网页上写的是123456789,则屏幕阅读器读的内容是“一二三四五六七八九”;但如果你写成123,456,789,则屏幕阅读器会读成:“一亿两千三百四十五万六千七百八十九”,也就是被当成一个数字来读了。乍一看好像前面的读法也能理解,那实际上会给用户带来很大的困扰,例如下面内容:“总共参加用户12288029人”,会被读成“总共参加用户一二二八八零二九人”,根本就没法get到到底多少人的。

因此综合来看,没有任何理由不使用千位分隔符表示web网页中的大数字。

3、那么有没有什么简单的方法可以把连续数字转换成逗号分隔数值呢?

方法一:使用正则表达式

语法如下:

String(Number).replace(/(\d)(?=(\d{3})+$)/g, "$1,");

举例:

String(123456789).replace(/(\d)(?=(\d{3})+$)/g, "$1,");

结果是:123,456,789

方法二:使用toLocaleString()方法

语法如下:

Number.toLocaleString('en-US');

举例:

(123456789).toLocaleString('en-US');

结果是:123,456,789

对于中文场景下,toLocaleString('en-US')中的'en-US'理论上是可以缺省的,也就是直接(123456789).toLocaleString()也是可以得到123,456,789。但是如果你的产品可能海外用户使用,则保险起见,还是保留'en-US'。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3