JavaScript 实现金额、字符与时间格式化的完整方法

作者:百宝袋时间:2026-10-28 22:57:54浏览:220

本文提供了一套完整的 JavaScript 工具函数,涵盖金额大小写转换、千分位添加与去除、日期时间字符串解析及格式化等常用功能。代码包含对非法输入的校验、精度处理及边界条件判断,可直接复制用于前端开发中的数据展示与交互场景,帮助开发者快速实现标准化的数据格式化需求。

JavaScript 金额、字符与时间格式化实现

本文分享了一套用于 JavaScript 的实用工具函数,主要解决金额、字符及时间数据的格式化问题,供开发者参考使用。具体实现逻辑如下所示。

核心代码实现如下:

金额大写转换逻辑// 将数值金额转换为中文大写
function toDaX(num){
// 执行金额大小写转换逻辑
if (isNaN(num) || num > Math.pow(10, 12))
return "";
var cn = "零壹贰叁肆伍陆柒捌玖";
var unit = new Array("拾佰仟", "分角");
var unit1 = new Array("万亿", "");
if(parseFloat(num)==0||num==''){
return "零圆";
           }
var numArray = num.toString().split(".");
var start = new Array(numArray[0].length - 1, 2);
function toChinese(num, index) {
var num = num.replace(/\d/g, function($1) {
return cn.charAt($1)+ unit[index].charAt(start-- % 4 ? start % 4 : -1);
                   });
return num;
           }
for ( var i = 0; i < numArray.length; i++) {
var tmp = "";
for ( var j = 0; j * 4 < numArray[i].length; j++) {
var strIndex = numArray[i].length - (j + 1) * 4;
var str = numArray[i].substring(strIndex, strIndex + 4);
var start = i ? 2 : str.length - 1;
var tmp1 = toChinese(str, i);
tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "");
tmp1 = tmp1.replace(/^壹拾/, "拾");
tmp = (tmp1 + unit1[i].charAt(j - 1)) + tmp;
                }
numArray[i] = tmp;
           }
numArray[1] = numArray[1] ? numArray[1] : "";
numArray[0] = numArray[0] ? numArray[0] + "元" : numArray[0],numArray[1] = numArray[1].replace(/^零+/, "");
numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1] + "整";
return numArray[0] + numArray[1];
     }  
金额数值格式化操作/** 金额格式化:为数值添加千分位逗号分隔符 */
function addComma(money) {
if(money==""){
return "";
}
if(money){
money = money.trim();
}
 if(/[^0-9\.\-\+]/.test(money)){ 
 return money;
 } 
 money = parseFloat(money) + ""; 
 if('NaN' == money){
 return "0.00";
 }
 var money_flag = "";
 if(money.indexOf("-") != -1){
 money = money.replace(/-/g,"");
 money_flag = "-";
 }
money=money.replace(/^(\d*)$/,"$1."); 
 money=(money+"00").replace(/(\d*\.\d\d)\d*/,"$1"); 
 money=money.replace(".",","); 
 var re=/(\d)(\d{3},)/; 
 while(re.test(money)){ 
 money=money.replace(re,"$1,$2"); 
 } 
 money=money.replace(/,(\d\d)$/,".$1"); 
 var money = money_flag+""+money.replace(/^\./,"0.")
 return money; 
}
/** 金额格式化:去除数值中的千分位逗号 */
function delComma(value) {
 var rtnVal = value + "";
 return rtnVal.replace(/,/g,"");
}
/**
 * 金额格式化:在字符串末尾添加小数点,保留两位小数
 */
function addPoint(money){ 
if(/[^0-9\.]/.test(money)){ 
 return money;
 }
 
 if(money.length < 3 || money.indexOf(".") > -1){ 
 return money;
 }
 
 return money.substring(0,money.length - 2) + "." + money.substring(money.length - 2,money.length);
}
/**
 * 金额格式化:移除字符串中的小数点,转换为整数分单位
 */
function removePoint(money){ 
 if(/[^0-9\.]/.test(money)){ 
 return money;
 }
 
 var valueFloat = parseFloat(money) * 100;
 var valueInt = parseInt(valueFloat);
 return valueInt;
}
/* 格式化小数点后两位数字,并以百分比形式显示 */
function addPercent(str){
 var percent = Math.floor(str * 100) / 100;
 percent=(percent.toFixed(2));
 return percent+'%';
}
字符串分隔符处理/** 字符格式化:为字符串添加空格作为分隔符 */
function addSpace(value) {
if(value == null || value == ""){
return "";
}
var value = value + "";
 var tmpStr = "";
 while (value.length > 4) {
 tmpStr = tmpStr + value.substring(0,4)+ " ";
 value = value.substring(4,value.length);
 }
 tmpStr = tmpStr + value;
 return tmpStr;
}
/** 字符格式化:去除字符串中的空格分隔符 */
function removeSpace(value) {
var rtnVal = value + "";
 return rtnVal.replace(/ /g,"");
}
日期时间字符串解析// 格式化日期时间字符串
// 支持格式:YYYYMMDD 转换为 YYYY-MM-DD
// 支持格式:YYYYMMDDhhmmss 转换为 YYYY-MM-DD hh:mm:ss
function formatDatetime(oldvalue){ 
if(oldvalue == null){
return "";
}else if(oldvalue.length == 8){
return oldvalue.substring(0,4) +
 "-" + oldvalue.substring(4,6) + 
 "-" + oldvalue.substring(6,8);
}else if(oldvalue.length == 14){
return oldvalue.substring(0,4) +
 "-" + oldvalue.substring(4,6) + 
 "-" + oldvalue.substring(6,8) + 
 
 " " + oldvalue.substring(8,10) + 
 ":" + oldvalue.substring(10,12) + 
 ":" + oldvalue.substring(12,14);
}else if(oldvalue.length == 6){
return oldvalue.substring(0,2) +
 ":" + oldvalue.substring(2,4) + 
 ":" + oldvalue.substring(4,6);
}else{
return oldvalue;
}
}
function StringToDate(str){
var datainfo=str.split('-');
 return new Date(datainfo[0],datainfo[1],datainfo[2]);
}

希望上述代码示例能对您的 JavaScript 编程工作提供实际帮助。

作者最新文章