提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 整数添加千分符
    • 使用方法
    • 详解
    • 使用示例
  • 总结

前言

最近在项目中遇到一个小的需求,就是给金额加上千分符,原本想着直接强行遍历该金额的字符串,进行添加,后来转念一想,用正则或许会使代码更简洁。于是就研究了一下,本篇文章将会详细解释为一个整数添加千分符的正则表达式,顺便记录一下,方便以后回顾。


整数添加千分符

使用方法

String(intNum).replace(/(\d)(?=(?:(\d{3})+$))/g,'$1,');

详解

首先将待处理的整数转换为字符串(当然还有其他转换方法),然后使用字符串的replace函数来达到我们要实现的目标。重点是其中的正则表达式从何而来,当然网上随便一搜都会有博客告诉你是这个,但是为什么是这个呢?

  1. 首先我们要明确我们的目的是在符合条件的某个数字后面添加一个分隔符,所以我们要替换的内容就是这个数字和分隔符。接下来,就是怎么要找到符合条件的数字。

  2. 千分符就是从末位开始,每三个数字,就在这三个数字前加一个分隔符,所以我们就可以先匹配三个数字,即\d{3}。但我们只是先通过这三个数字去判断在哪加千分符,所以这三个数字其实没用,这个时候就用到了?:,这个时候正则表达式就成为了?:(\d{3})。这表达的意思就是,我去匹配三个数字,但是我不保存下来。

  3. 通过刚刚的表达式,我们已经能够定位到在哪里添加分隔符。注意我们使用的是replace函数,所以需要一个东西来给我们替换吧,毫无疑问,紧挨着这三个数字的前一个数字就是我们需要的。所以正则表达式就变成了(\d)(?=(?:(\d{3}))),它的意思就是我匹配的这个数字,它的后面必须跟着三个数字,比如1234就能匹配到1这个数字了。

  4. 通过刚刚的介绍,好像已经可以了,但是万一有5位数字怎么办,按照刚刚的正则表达式的话,12345就会匹配到1和2了。那就把三个数字当成一组呗,我一组一组的匹配,所以正则表达式就来到了(\d)(?=(?:(\d{3})+$))。至此,正则表达式已经满足我们的需要了,接下来就是应用到函数中去替换了,也就得到了开头提到的那个使用方法。

使用示例

let regPattern = /(\d)(?=(?:(\d{3})+$))/g;
console.log('1234'.replace(regPattern, '$1,'));
// '1,234'
console.log('12345'.replace(regPattern, '$1,'));
// '12,345'
console.log('-12345'.replace(regPattern, '$1,'));
// '-12,345'
console.log('11515515130500300510'.replace(regPattern, '$1,'));
// '11,515,515,130,500,300,510'

总结

本文详细介绍了为整数添加千分符时的正则表达式的构建过程,如有不足之处,还望批评指正!

详解为整数添加千分符的正则表达式相关推荐

  1. javascript 添加千分符

    对于给一组数字添加千分符,我能想到的方法有两种,一种是通过循环遍历,另一种是使用正则表达式. 第一种方法太笨了,这里就用第二种方法实现. 代码是在网上找的,因为添加千分符的正则表达式我是不会写的. & ...

  2. word文档怎么给数字加千分符_怎样给Word添加千分符

    Word作为生活中常用的文本形式,有诸多用处,也有很多技巧,今天和大家分享的就是其中千分符的使用,千分符的效果是可以帮助我们在数字比较大,位数比较多的时候,对数字有个清晰直观的感受,快跟小编一起看看怎 ...

  3. word文档怎么给数字加千分符_word实用技巧:如何为数字添加千分符的3种方法

    我们在用Word做各类文书.标书.策划类时,有时会在文档中书写多位数的金额数据,如下图所示的调薪通知: 看到上方薪资单中的信息我是拒绝的,一般情况下,金额位数比较多时,应该设置添加千分符.但文档中12 ...

  4. JS中给数字添加千分符

    一些项目在开发过程中,会遇到给表格.图表中的数字添加千分符的问题,下面分享一个简单实用的函数给大家. const thousands = (str) => {//str 字符类型的数字let t ...

  5. JavaScript正则-添加千分符的三种方法

    JavaScript正则-千分符 方法一:分组 var str = "4234513634"; // 4,234,513,634 var reg = /^(\d{1,3})((?: ...

  6. javascript为数字添加千分符

    实现的功能为: 123456789 转换为123,456,789 使用的正则表达式如下所示: /(\d{1,3})(?=(\d{3})+$)/g 使用方式: var num = 123456789; ...

  7. 给数字添加千分符 和去除千分符

    ===========================主要代码 function commafyback(num) { var x = num.split(','); return parseFloa ...

  8. php插入友情链接,PHP_详解WordPress中添加友情链接的方法,友情链接对于一个每个独立博 - phpStudy...

    详解WordPress中添加友情链接的方法 友情链接对于一个每个独立博客来说可以说是必须的,有不少人选择在侧边栏加入友情链接栏目,但建立一个独立的友情链接页面也是一个不错的选择.用插件可以轻松做到这一 ...

  9. html5 input 金钱符,Vue金额千分符格式化输入组件

    目的效果: 1.focus时是浮点数 2.blur时展示的是千分符格式 3.输入框取值时是浮点数 4.基于element-ui el-input :value="formatValue&qu ...

最新文章

  1. 第7周实践项目2 队列的链式存储结构及其基本运算的实现
  2. python—高阶函数
  3. ROS-OccupancyGrid学习笔记
  4. 移动端页面制作字号大小设定问题,设计稿文字字号规范,解决移动端大小屏适配问题
  5. 俄罗斯方块代码 java_JAVA语言俄罗斯方块代码实现
  6. access建立er图_关于ER图的快速生成 | 学步园
  7. matlab——度分秒与度的转换
  8. vs2010sp1安装失败问题
  9. Hibernate逍遥游记-第13章 映射实体关联关系-005双向多对多(使用组件类集合\composite-element\)...
  10. Unity 接讯飞语音SDK
  11. html字两边的横线_css实现中间文字 两边横线(原创)
  12. PHP限制字符串显示长度
  13. python中return0与return1_return 0 和return 1的区别
  14. “Word文件设置了多级列表,却还是不能创建目录”的解决办法
  15. 【基础知识】PCB布局设计入门步骤
  16. java 使用subList痛彻心扉的领悟
  17. 22考研清华905机械设计基础上岸经验分享
  18. Dunn检验的介绍和python实现
  19. 部署rtl88xx驱动/rpcapd,支持wireshark远程抓Wifi包
  20. 【老生谈算法】matlab实现LMMSE算法信道均衡源码——LMMSE算法

热门文章

  1. 用递归方法求1到100的和
  2. 解读STEAM教育中的表现性评价
  3. 1元,5元,10元,20元,50元、100元面值人民币组合给定x元的问题
  4. 微信自定义链接分享标题描述跳转任意链接url在线生成方法
  5. Attention Mechanisms in Computer Vision: A Survey综述详解
  6. 如何做到精通GitLab CI/CD?
  7. Snippet Store 0.2.11 汉化版
  8. android java框架_Android 框架简介:java框架
  9. 输出100以内的素数【C语言】
  10. 基于Jenkins + Git的PHP项目编译脚本