资讯专栏INFORMATION COLUMN

js千分位分隔符

jsliang / 1786人阅读

摘要:核心都是通过数组的不同的是,一个通过字符串,一个通过数组算法不考虑入参的判断另外一种优化算法,因为字符串在每次变化都会重新开辟内存,所有转化为数组会更加便捷算法算法正则更多文章在

1 核心都是通过数组的reduce,不同的是,一个通过字符串,一个通过数组 2 算法1
var str = "123456789";
//[9,8,7,6,5,4,3,2,1]
function formatCash(str) {
  //不考虑入参的判断
  return String(str).split("").reverse().reduce((pre, next, index) => {
    return (index % 3) ? (next + "" + pre) : (next + "," + pre);
  })
}

console.log(formatCash(str));

另外一种优化算法,因为字符串在 js 每次变化都会重新开辟内存,所有转化为数组会更加便捷;

3 算法2
function f(str) {
    const ret = Array.from(str).reverse().reduce((result,next,i,arr) => {
        if((i+1)%3 === 0 && (i+1) !== arr.length) {
            result.push(next,",")
            return result;
        }
        result.push(next);
        return result;
        // return (index % 3) ? (next + "" + pre) : (next + "," + pre);
    },[])
    return ret.reverse().join("");
}
3 算法3 正则
 var reg2 = /(?!^)(?=(d{3})+$)/g;
console.log(str2.replace(reg2,",");

更多文章在github

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107880.html

相关文章

  • 千分分隔数字并自定义保留小数

    摘要:实现思路使用正则,用数字中的小数点做匹配尾部参考,来匹配某个数字后面的一个或多个连续位数字,如果匹配到把该数字替换成自身加分隔符,如下示例分隔数字解释和之间有一个连续位数字,那么给后面添加一个分隔符得到结果。 功能:可实现不同符号分隔数字,可自定义分隔后数字保留的小数位数。 实现思路     使用正则,用数字中的小数点做匹配尾部参考,来匹配某个数字后面的一个或多个连续3位数字,如果匹配...

    caoym 评论0 收藏0
  • 原生js之千隔符(包括小数情况)

    摘要:同学前端面试遇到这么一个题目给数字添加千分位分隔符一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力我是小白上网百度了一波全是用正则表达式来解决的,正则这块我只懂皮毛,所以感觉有点看不明白,不过这个博客解释挺清楚 同学前端面试遇到这么一个题目 :给数字添加千分位分隔符 一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力(我是小白)...

    msup 评论0 收藏0
  • 2019年前端必用正则(js)

    摘要:新增插件中搜索进行安装仓库地址使用方法安装中插件搜索框输入安装完毕后按或者输入可以看到正则列表或者输入关键词比如手机网页版支持的正则年月日更新迅雷链接链接宽松匹配磁力链接宽松匹配子网掩码文件夹路径文件路径下文件夹 新增vscode插件 vscode中搜索any-rule进行安装. 仓库地址: https://github.com/any86/any-... showImg(https:...

    stormgens 评论0 收藏0
  • 正则表达式实例

    摘要:收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。校验手机号下面是国内开头的手机号正则表达式。提取网页图片假若你想提取网页中所有图片信息,可以利用下面的表达式。抽取注释如果你需要移除中的注释,可以使用如下的表达式。 收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。 校验基本日期格式 校验密码强度 校验中文 由数字、26个英文字母或下划线组成的字符...

    zhoutk 评论0 收藏0
  • js千分格式化

    js千分位格式化 方法一(非正则, 字符串): var test = 1234567890; function formatCash(str) { str = (str || 0).toString(); if (str.length = 0; i--) { counter++; arr.unshift(str[i]); if (!(counter % 3) &...

    phodal 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<