JavaScript实现数字格式化函数:支持自定义规则与容错处理
作者:闭包旅人时间:2026-10-26 03:24:09浏览:539
本文提供一段JavaScript函数代码,用于实现数字的格式化输出。该函数支持通过字符串参数定义格式化规则(如#,##0.00),处理null、空值或非数字输入时的默认返回值,并利用正则表达式实现千分位分隔符的自动插入。代码包含完整的参数校验与逻辑判断,适用于前端数据展示场景。
// 代码结束
JavaScript数字格式化函数实现
以下是实现该功能的代码示例:
/**
* 用于格式化数字的函数逻辑
* 作者:Z,Mingyu
* 参数说明:
* prmNum (Number) : 需要被格式化的原始数字
* prmPtn (String) : 定义格式化规则的字符串,例如:#,##0.00
* * prmNullValue : 当输入数字为null、空字符串或非数字类型时,函数返回的默认值。若未指定,默认为0
*/
function formatNum(prmNum,prmPtn,prmNullValue){
var nullValue = prmNullValue ? prmNullValue : 0;
if(prmNum == "" || prmNum == null) return nullValue;
prmNum = prmNum.replace(/\,/g,"");
if(isNaN(prmNum)) return nullValue;
if(prmPtn == "" || prmPtn == null) return prmNum;
var ptnLen = prmPtn.length;
var pointIndex = prmPtn.indexOf(".");
var groupIndex = prmPtn.indexOf(",");
var pointLen = (pointIndex == -1 ? 0 : ptnLen - pointIndex - 1);
prmNum = parseFloat(prmNum).toFixed(pointLen) + "";
if(groupIndex != -1){
if(pointIndex == -1) pointIndex = ptnLen;
var len = pointIndex - groupIndex - 1;
var reg = new RegExp("(-?\\d+)(\\d{"+len+"})");
while(reg.test(prmNum)) prmNum = prmNum.replace(reg,"$1,$2");
}
return prmNum;
} 作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
