
利用正则添加千分符(JavaScript)
发布日期:2021-05-10 07:36:21
浏览次数:13
分类:精选文章
本文共 1884 字,大约阅读时间需要 6 分钟。
添加千分符或叫做千分位分隔符,是一种对大数值进行格式化表示的常见需求。简单来说,就是将连续的数字按照一定的规则插入逗号,以便于阅读和理解。下面来看三个不同的实现方法。
方法一:
思路是先将数字的每一位分离开来,然后将多余不到3位的数字单独保存,剩下的数字则按每3位一组的方式添加逗号,最后将两部分组合在一起。具体实现如下:script> var input = document.querySelector("input"); var p = document.querySelector("p"); var btn = document.querySelector("button"); btn.onclick = function() { var str = input.value; var strArray = str.split(""); var more = strArray.slice(0, strArray.length % 3); strArray = strArray.slice(strArray.length % 3); strArray = strArray.match(/[0-9]{3}/g) || []; str = more.join("") + ",".join(strArray.join("")); p.innerHTML = str; }; script>
优点:简单易懂,但对于超过千位的数字可能效率不高。
方法二:
这个方法采用了正则表达式结合替换的方式,能够较为高效地处理数字串。每次用正则表达式匹配一次三位数字,用逗号替换原来的数字连接符。具体实现如下:script> var input = document.querySelector("input"); var p = document.querySelector("p"); var btn = document.querySelector("button"); btn.onclick = function() { var str = input.value; var reg = /(\d+)(\d{3})/; while (reg.test(str)) { str = str.replace(reg, function($1, $2) { return $1 + "," + $2; }); } p.innerHTML = str; }; script>
优点:高效处理大数字串,重复替换操作直到没有匹配情况为止。
方法三:
这种方法的核心思想是利用字符串反转、替换然后再次反转的方式,实现千分符的添加。主要操作包括首尾对齐以及切断处理。具体实现如下:script> var input = document.querySelector("input"); var p = document.querySelector("p"); var btn = document.querySelector("button"); btn.onclick = function() { var str = input.value.split("").reverse().join(""); var reg = /\d{3}/g; str = str.replace(reg, function($0) { return $0 + ","; }); str = str.split('').reverse().join(""); if (str.length % 3 == 0) { str = str.substring(1); } p.innerHTML = str; }; script>
优点主要体现在,能够有效地实现对大数字串的千分符格式转换,并且支持多次添加功能,代码简洁且易于维护。
通过以上方法,你可以根据实际需求选择最适合的实现方式。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月15日 10时02分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如何使用linux系统自带的led驱动
2019-03-07
泛知识类视频会改变短视频行业格局吗?
2019-03-07
IP-Guard回收客户端加密授权,已经加密的文档如何解密
2019-03-07
IP-GUARD支持的数据库版本
2019-03-07
IP-Guard文档权限管理,让核心数据使用更安全
2019-03-07
ip-guard加密在OFFICE文档里插入图片提示错误
2019-03-07
a*算法伪代码及实现
2019-03-07
第十一节 IO编程
2019-03-07
十八、flask之g对象
2019-03-07
GIT学习笔记
2019-03-07
Linux系统调用过程
2019-03-07
stm32 uv5打开uv4工程错误
2019-03-07
mysql怎么终止一个事务_MySql 中游标,事务,终止存储过程方法总结
2019-03-07
SmartRefreshLayout 上拉加载下拉刷新
2019-03-07
app:processDevDebugResources
2019-03-07
最基础的urllib.request.urlopen()基本使用
2019-03-07
C# 异常
2019-03-07
vs 设置静态库输出路径
2019-03-07
strlen sizeof 快
2019-03-07