第一种方法:将数字转换成字符串进行处理
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
function formatNumber(num) { var decimalPart = ''; num = num.toString(); if (num.indexOf('.') != -1) { decimalPart = '.' + num.split('.')[1]; num = parseInt(num.split('.')[0]); } var array = num.toString().split(''); var index = -3; while (array.length + index > 0) { // 从单词的最后每隔三个数字添加逗号 array.splice(index, 0, ','); index -= 4; } return array.join('') + decimalPart; };
第二种方法:用正则表达式进行匹配
/** * 正则表达式的含义: * \b 表示单词间隔 如 i am here \bhere\b, 如果是 iamhere 则用 \bhere\b不能匹配here,只能用here匹配 * \B 和 \b相反,类似\d \D的关系。 \B表示非单词间隔上面的例子 iamhere如果用\Bhere 则可以匹配 * (?=(\d{3})+(?!\d)) 意思连续三位为数字,且满足最后一位不是数字,也就是单词结尾了,所以能做到单词往前推三位加上逗号 */
function formatNumberRgx(num) { var parts = num.toString().split("."); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); return parts.join("."); };
正则表达式解析:
/\B(?=(\d{3})+(?!\d))/g
先把上面这个表达式的结构解析为如下形式:/x(?=y)/g 。其中 g 代表全局匹配,x(?=y) 匹配x当且仅当x 后面是 y ,x 代表 \B ,y 代表 (\d{3})+(?!\d)。\B 匹配非单词边界,两边都是单词字符或者两边都是非单词字符,形如:\w\B\w 或者 \W\B\W 。(\d{3})+(?!\d) 又可以解为: x(?!y),匹配x 当且仅当 x 后面不是 y 。其中 x 代表 (\d{3})+,y代表 \d。(\d{3})+ 匹配三个数字,出现次数>=1。
第三种方法:使用原生函数。
number.toLocaleString();
注意:
第三种方法并不支持所有浏览器,在FireFox和Safari中无效。
详见
相关推荐
主要介绍了js下将金额数字每三位一逗号分隔的相关资料,还附加了一个小功能,小数位保留两位,感兴趣的小伙伴们可以参考一下
鼠标onfous把数字转化为带千分符,移走再给数字加千分符
对于较大数字,添加千分号可以方便快速地读出数值。千分号是指从最右边开始,每隔三位加个逗号。这种写法很广泛,来源大概是因为英文中 Thousand,千、million,百万、billion,十亿 都是隔三位的。在这里我们使用php...
vue全局实现数字千位分隔符格式 本文实例为大家分享了vue全局实现数字千位分隔符格式... 转换代码实现 首先创建一个文件 numberToCurrency.js ,实现数字千位分隔符转换功能。 export function numberToCurrencyN
窗体分隔测试窗体分隔测试窗体分隔测试窗体分隔测试窗体分隔测试窗体分隔测试
java字符串类型数字设置千分位分隔,可对整数、带小数点的数字、负数进行千分位分隔。并对字符串进行了数字判断,非数字类型的字符串不进行转换。
jquery-number-divider是一款jquery数字格式化分隔符插件。该数字格式化插件可以按指定格式对大数字进行分隔,可以指定分隔符,是一款简单实用的数字格式化插件。 安装 可以通过bower来安装number-divider.js数字...
每四个数字分隔输入框,有一个输入框的代码和四个输入框的代码
JS字符串操作(添加删除,以逗号分隔)
jQuery数字格式化分隔符代码是一款可以按指定格式对大数字进行分隔的数字分隔符代码插件,可以指定分隔符。
下面小编就为大家带来一篇js以分隔符分隔数组中的元素并转换为字符串的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一个Android工程,里面只有一个文本框,用户只能输入数字,每输入5个数字,自动分隔成4个数字加一个数字,如下1234-5555-9997-4444,主要是用于银联输入银行账号的时候用的
C#千位分隔符 并且去掉了点 希望对大家有帮助
代码如下:function formatNum(num){ if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert(“wrong!”); return num;} var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3; var re = new ...
5.设计一个网页,输入一串用英文逗号分隔的数字字符串。编写程序,输出找出该组数中的最大、最小值、和 。并按从大到小排序后的输出结果(以逗号分隔)。 6. 要求用户在文本框中年份,点击判断按钮,用alert函数输出...
将手机号格式化为xxx xxxx xxxx的形式
介绍: 这个货币转换JS代码,可以实现自动格式化输入的数字,自动千位分隔符。