利用正则添加千分符(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>

优点主要体现在,能够有效地实现对大数字串的千分符格式转换,并且支持多次添加功能,代码简洁且易于维护。

通过以上方法,你可以根据实际需求选择最适合的实现方式。

上一篇:不使用for或while实现循环功能(JavaScript)
下一篇:vscode中将html,css,js代码首行改成2空格缩进

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月15日 10时02分38秒