如果数字比较长每3个数字用 “,” 隔开,方便查看,如:7,890,789.0

现我们用几种方法实现

(1)正则表达式

("7890789.0").replace(/\d(?=(?:\d{3})+\b)/g, '$&,')

这句代码什么意思呢,刚一看,比较迷茫,首先需要了解几个常用的正则表达式符号的意思

\d        :  匹配一个数字

(?:x)    :  匹配 'x' 但是不记住匹配项。这种叫作非捕获括号

x(?=y):匹配'x'仅仅当'x'后面跟着'y'.这种叫做正向肯定查找

{n}     :n是一个正整数,匹配了前面一个字符刚好发生了n次

\b      :用来匹配单词的边界,大小写字母、数字、下划线可以组成单词的字符,这些字符和其它字符相邻则为单词边界

如abcd@ , d与@之间就可以用\b匹配,本文的例子来说7890789.0其中9与 “.” 之间的位置(单词字符与非单词字符之间的位置)就是单词的边界

了解上面常用的正则表达式的意思,我们就可以理解下面这串比较长的正则表达式的意思

("7890789.0").replace(/\d(?=(?:\d{3})+\b)/g, '$&,') 可以解释为匹配一个数字,这个数字后面与小数点之前这个范围是3的倍数的数字,其中\b的作用是控制小数点之前,匹配的这个数字最后替换为这个数字与 “,”组成的字符串

看下面的示意图,可能更好理解

其他方法

第二种方法

console.log(("78907899.0").replace(/\d{1,3}(?=(\d{3})+\b)/g, '$&,'))

第三种方法

console.log(("7907899.00").replace(/(\d)(?=(\d{3})+\b)/g, '$1,'))

//$1表示正则中第一对圆括号内匹配的内容,$&表示与 regexp 相匹配的子串,所以可以不用括号,但是$1一定匹配第一个带圆括号的

第四种方法

console.log((78907899.10).toLocaleString('en-US'));//这种方法不大好,如果小数点后是0就省略了

最后一种方法

var nums = "78907899.0012"

var result;

var agentArr = [];

var newNum;

var point;

var str = "";

if (nums.indexOf(".") != -1) {

agentArr = nums.split(".");

newNum = agentArr[0]

point = agentArr[1]

} else {

newNum = nums;

point = ""

}

console.log(newNum)

var len = Math.ceil(newNum.length / 3)

var len1 = newNum.length % 3

console.log(len, len1)

for (var i = 0; i < len; i++) {

if (len1 != 0) {

console.log("hi")

if (i == 0) {

str = str + newNum.substr(0, len1) + ", "

console.log(str)

} else if (i !== 0 && i !== 2) {

str = str + newNum.substr(len1 + 3 * (i - 1), 3) + ", "

console.log(str)

} else {

str = str + newNum.substr(len1 + 3 * (i - 1), 3)

console.log(str)

}

} else {

str = str + newNum.substr(3 * (i + 1), 3) + ", "

}

}

if (nums.indexOf(".") != -1) {

result = str + "." + point

} else {

result = str

}

console.log(result)

java 去除千位分隔符_js实现千位分隔符相关推荐

  1. 前端保留两位有效数字_js保留两位小数方法总结

    本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一.我们首先从经典的"四舍五入"算法讲起 1.四舍五入的情 ...

  2. js string转两位小数_js保留两位小数总结

    一 Math.round(),Math.ceil(),Math.floor()的区别 Math.round():根据"round"的字面意思"附近.周围",可以 ...

  3. js string转两位小数_js保留两位小数

    以下我们将为大家介绍JavaScript保留两位小数的实现方法: 四舍五入 以下处理结果会四舍五入:var num =2.446242342; num = num.toFixed(2); // 输出结 ...

  4. jq设置保留两位小数_js保留两位小数方法总结

    本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一.我们首先从经典的"四舍五入"算法讲起 1.四舍五入的情 ...

  5. js string转两位小数_js保留两位小数的函数有哪些

    js保留两位小数的函数有:1.[toFixed()]函数:2.[Math.floor()]函数不四舍五入 ,向下取整:3.使用字符串匹配方法:4.四舍五入保留2位小数:5.浮点数保留两位小数. js保 ...

  6. JS 数字千位分隔符且保留两位小数

    数字千位分隔符且保留两位小数 1.仅需要整数位千位分隔 num.toLocaleString() 2.仅需要保留两位小数 num.toFixed(2) 3.需要千位分隔符且带两位小数 Thousand ...

  7. word文档怎么给数字加千分符_word数字千分位的批量添加方法

    内容提要:文章介绍word数字千分位的一次性批量添加方法,以及word千分位详细的添加操作步骤. 笔者是一名会计从业者,在word文档中经常与数字打交道,为了保持数字格式的统一性,需要将数字添加千分位 ...

  8. java输出排列整齐,java 每次输出有单个数字和好几位数字时候 排列不整齐。。这个不知道有没有办法解决的?...

    java 每次输出有单个数字和好几位数字时候 排列不整齐..这个不知道有没有办法解决的? 关注:250  答案:4  手机版 解决时间 2021-02-01 17:18 提问者芣①樣哋羙莮 2021- ...

  9. Java基础教程-首篇前序-二进制符号位及原反补

    上篇文章我们提到过在计算机中所有的文件底层的存储都是使用二进制的,右键点击一个文件然后点属性,我们可以看见该文件的大小,如:1.06 KB (1,094 字节) 这里我的文件大小为1094个字节,字节 ...

最新文章

  1. 如何在公司局域网内访问不同网段的主机
  2. 2017年7月十三日正式开始记录
  3. 机器学习中常见的希腊字母
  4. img.width一直是0的问题--记录(二)
  5. HTML5中CLASS选择器,html5 class选择器
  6. 詹金斯搭建_詹金斯的Maven报告
  7. 动态规划法(九)想要更多例子? 1
  8. Thinking in Java 14.7 动态代理
  9. goflyway安装
  10. SLAM--位姿估计 (扩展卡尔曼滤波EKF/高斯牛顿非线性优化)
  11. 50道编程题(有精力的同学看看)
  12. 科学研究设计二:定量分析和定性分析
  13. 网件使用计算机mac地址吗,网件路由器怎么设置mac地址过滤
  14. FPGA概述(对FPGA的基本认识)
  15. 新闻接口调用之新浪滚动新闻
  16. 更换ICCID码破解Apple运营商锁策略分析
  17. unity实现去中心化社交软件
  18. 简显易懂的TCP网络通信零起步(java网络画板,山寨腾讯会议)
  19. 计算机组织活动的意义,信息学院计算机09-1班团支部关于“向榜样学习,向优秀看齐”主题班团会活动总结...
  20. Shellshock Lab

热门文章

  1. 找出二维数组中的最小元素
  2. Derby数据库学习,derby、derby。derby入门。
  3. 华为OD机试题,用 Java 解【猜字谜】问题 | 双解法
  4. OpenCV --- 皮肤检测技术
  5. vue 集成 sweetalert2 提示组件
  6. Java面向对象的特性
  7. HTML 单选按钮(性别实现)
  8. git clone与pull的区别
  9. helpdesk软件维护异常处理方法,提供工作效率
  10. 努力到无能为力,拼搏到感动自己