首页 > 其他分享 >用 JS 实现数字千分位格式化

用 JS 实现数字千分位格式化

时间:2022-10-07 17:26:07浏览次数:48  
标签:slice 格式化 213 res 千分 JS let str strNum

需求:用 JS 实现数字千分位格式化,每个三位添加一个逗号

方法一:利用字符串str.slice(-3)是取最后三位数字,并在前面添加‘,’号,再通过strNum.slice(0,str.length-3)(是取从字符串开始到后三位截止)来改变原字符串的位数,然后循环即可。

function formatStr(num){
    let strNum = num.toString();
    let res = '';
    while (strNum.length > 3) {
        //选取后三位,在前面添加','并拼接
        res = ',' + strNum.slice(-3) + res;
        //除后三位以外全部选取,对原字符串重新赋值来改变长度
        strNum = strNum.slice(0,strNum.length-3);
    };
    res = strNum + res;
    return res;
}
let str = '111213213322';      
console.log(formatStr(str));//1,111,213,213,322

方法二:循环字符串,从后开始循环j%3===0判断是否是3的倍数,是的话就在前面添加‘,’号,不是直接拼接。

function formatStr(num) {
    let str = '';
    let strNum = num.toString();
    let len = strNum.length;
    for (let i = len - 1; i >= 0; i--) {
        const j = len - i; //获取新的字符的长度
        if (j % 3 === 0) {
            if (i !== 0) {
                str = ',' + strNum[i] + str;
            } else {
                //第一次直接拼接
                str = strNum[i] + str;
            }
        } else {
            str = strNum[i] + str;
        }
    }
    return str
}
let str = '1111213213322';
console.log(formatStr(str));//1,111,213,213,322

 

标签:slice,格式化,213,res,千分,JS,let,str,strNum
From: https://www.cnblogs.com/zimengxiyu/p/16760082.html

相关文章

  • Microsoft 365 开发篇:如何使用JSON Format来定制New Item的页面布局
    Blog链接:​​​https://blog.51cto.com/13969817​​我们使用SharePointOnline作为企业数据存储和协作办公管理平台时,往往根据用户的实际需求基于SharePointOnline做了很......
  • Three.js 学习记录
    首先,你要引入three.js插件,这里默认你已经安装好了该插件three.js使用时必要的模块有:渲染器,相机,光源,场景,以及你要的加载模型在vue页面中引入import*asTHREEfrom"t......
  • 教你开发一个JS代码加密工具
    教你开发一个JS代码加密工具作者:JShaman.comw2sft本文,教你开发一个JS代码加密工具。工具可实现:把正常的JS代码,转化为加密代码,并且加密后的JS代码能直接运行。效果展示加密......
  • httpclient实现HttpGet请求传body的json参数的!
    原文来自:https://admins.blog.csdn.net/article/details/109809386前言最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body中(json格式)。场景如下:A服务需发送h......
  • JS + Canvas 碰撞检测
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content=......
  • 直播带货源码,通过js实现轮播图的效果
    直播带货源码,通过js实现轮播图的效果<!DOCTYPEhtml><html> <head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <m......
  • autojs 企业微信 一键上传
    app.startActivity({action:"android.intent.action.VIEW",data:"alipays://platformapi/startapp?appId=2018062060350751&page=%2Fpages%2Fweb%2Fweb%3Furl%3Dht......
  • HttpClient发送Post请求传递json、普通参数
    importcom.alibaba.fastjson.JSONObject;importorg.apache.http.HttpEntity;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncod......
  • Springboot 之 Filter 实现 Gzip 压缩超大 json 对象
    简介在项目中,存在传递超大json数据的场景。直接传输超大json数据的话,有以下两个弊端占用网络带宽,而有些云产品就是按照带宽来计费的,间接浪费了钱传输数据大导致......
  • autojs 企业微信 一键上传 健康码 行程码
    auto();//打开autojs权限//https://pro.autojs.org/docs/#/zh-cn/coordinatesBasedAutomation?id=setscreenmetricswidth-height//设置屏幕分辨率的坐标setScreenMe......