LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

js数字千分位格式化:从入门到花式炫技

freeflydom
2025年6月6日 9:4 本文热度 74

一、基础版:正则表达式一招鲜

function formatNumber(num) {
    return num.toString().replace(/\B(?=(\d{3})+(?!\d)/g, ",");
}
console.log(formatNumber(1234567)); // "1,234,567"
console.log(formatNumber(我的余额是1000000)); // "我的余额是1,000,000"

小杨解说:这个正则看着吓人,其实就做一件事——找到每三个数字前面的位置,插入逗号。

二、进阶版:处理小数和负数

function formatNumberAdvanced(num) {
    const parts = num.toString().split('.');
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join('.');
}
console.log(formatNumberAdvanced(-1234567.89)); // "-1,234,567.89"

小杨踩坑记:曾经没处理负数,结果用户看到"-123,456"一脸懵逼,还以为我们系统显示错误!

三、国际化方案:Intl.NumberFormat

console.log(new Intl.NumberFormat().format(1234567)); // "1,234,567"
console.log(new Intl.NumberFormat('de-DE').format(1234567)); // "1.234.567" 德国用点号

小杨提示:这个方法最省心,还能自动适配不同国家的格式!

四、性能优化版:避免频繁创建对象

const formatter = new Intl.NumberFormat();
function fastFormat(num) {
    return formatter.format(num);
}
// 适合需要频繁调用的场景

五、花式炫技:一行代码搞定

const fancyFormat = num => [...num.toString()].reverse().map((c,i) => i%3===0&&i!==0?c+',':c).reverse().join('');
console.log(fancyFormat(1234567)); // "1,234,567"

小杨警告:这种写法虽然酷,但可读性差,团队项目慎用!

六、实战中的坑

  1. 超大数字处理
// 错误示范
console.log(formatNumber(99999999999999999999)); // "100,000,000,000,000,000,000"
// 正确做法
function safeFormat(num) {
    return BigInt(num).toString().replace(/\B(?=(\d{3})+(?!\d)/g, ",");
}
  1. 输入校验
function safeFormatInput(input) {
    const num = Number(input);
    if(isNaN(num)) return '请输入有效数字';
    return formatNumber(num);
}

七、总结

  • 简单需求用正则replace
  • 国际化需求用Intl.NumberFormat
  • 性能敏感场景缓存formatter对象
  • 记得处理小数、负数和超大数字

​转自https://juejin.cn/post/7512332419203497995


该文章在 2025/6/6 9:04:22 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved