第一种方法:将数字转换成字符串进行处理。

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;
};

第二种方法:用正则表达式进行匹配。

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 后面是 yx 代表 \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中无效。详见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString 。

以上参考:

http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

js输出数字用千分号分隔的三种方法相关推荐

  1. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

  2. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  3. js删除字符串的最后一个字符三种方法

    字符串 [javascript] view plaincopy var basic = "abc,def,ghi,"; 第一种 [javascript] view plaincop ...

  4. php将字符串转换为json格式,js中将字符串转换为json格式的三种方法

    json在js的开发过程中经常会用到,像在使用ajax开发的项目过程中,经常需要将json格式的字符串返回到前端,前端解析成json对象. 下面为大家介绍下将字符串转换为json对象的三种常用的方法: ...

  5. Excel常用技巧—数字和文本转换,三种方法任你选!!

    Excel图表系列: Excel数据分析常用函数①--查询函数 Excel数据分析常用函数②--统计函数 Excel数据分析常用函数③--字符串函数 Excel数据分析常用函数④--日期函数 Exce ...

  6. 前端js去重的常用的简单的三种方法

    <script>//1 使用for双循环,首先循环原数组,然后循环新定义数组,它里面默认是原数组第一个元素,比较两个是否相等,function remove(arr) {let arr1 ...

  7. Java声明数组的三种方法

    目录 前言 内容 后记 前言: 这篇主要讲java的三种数组声明方式,这里采用String类型作为典型 内容: package com.izaijia; //数组的三种声明形式 public clas ...

  8. C语言实现strlen的三种方法

    目录 1.strlen介绍 strlen --- 求字符串长度 2.如何使用strlen库函数 3.三种方法实现strlen 计数器法: 递归法: 指针-指针法: 4.关于strlen返回值 1.st ...

  9. js 把字符串转成json对象的三种方法

    js 把字符串转成json对象的三种方法 不管字符串是否含有转义字符,都能转换成 Json 对象 1, js自带的eval函数,其中需要添加小括号eval('('+str+')'); function ...

最新文章

  1. 数据类型 类型检测
  2. hashmap转红黑树的阈值为8_面试必问的HashMap,一次彻底帮你搞定HashMap源码
  3. ROS学习(十三):time 和 Timer
  4. 系统运维篇之HP-DL580-Linux配置Bonding网卡组实例
  5. Vrep中支持的运动规划算法
  6. python中random库中shuffle_[宜配屋]听图阁 - 详解Python中打乱列表顺序random.shuffle()的使用方法...
  7. python 文字处理系统_详解Python中的文本处理
  8. 静态对象和非静态对象的区别
  9. SQL中的内连接查询和外连接查询
  10. Pandas:分组级的运算和转换--transform和apply
  11. 信息熵与两种编码基础
  12. maven的pom文件引入依赖报错:提示无法处理 Cannot resolve...
  13. HTML+CSS综合实训(二) 仿制视频网
  14. POSTGRESQL 用户怎么乱糟糟,出自其他DB的评论, 与SCHEMA 移魂大法
  15. JSD-2204-创建csmall项目-Day02
  16. Java实现Word转PDF方案选择
  17. [生存志] 第5节 第一篇 以史为鉴 罗振宇的思维逻辑
  18. window10 更新提示 0x80073712错误
  19. QML 之 real 数据保留小数点后两位
  20. mysql根据身份证查询年龄,地址,性别

热门文章

  1. vue中slot的使用
  2. try catch使用
  3. 选择一个软件外包公司的入职须知
  4. 剑三 服务器维护 终止跟宠cd,剑三宠物cd监控已进cd什么意思 | 手游网游页游攻略大全...
  5. 老左博客-前端资源-表格样式
  6. 悦刻母公司雾芯季报图解:营收17亿同比降29% 净利6.87亿
  7. 图片添加二维码水印教程
  8. 网上配镜前计算镜片边缘厚度的小程序
  9. 广州睿启电子科技有限公司电话面试总结
  10. html设置文本边框为透明,透明框中的文本