/**
* 数字转中文大写
* @param num 要转换的数字
*/
function parseNum(num){
// 单位配置 单位顺序 从大到小
// {index: 单位起始位置(从右边开始数), unit: "单位名称"}
var unitArr = [{index: 8,unit: '亿'}, {index: 4,unit: '万'}, {index: 3,unit: '仟'}, {index: 2, unit: '佰'}, {index: 1,unit: '拾'}, {index: 0, unit: ''}];
// 数字对应大写
var capitalNumArr = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
// 前方是否添零
var isZero = false;
// 解析数字字符串
var tempParse = function(num){
var numStr = num.toString();
var result = "";
if(numStr.length == 1){
if(numStr == '0'){
isZero = true;
}else{
if(isZero){
result += capitalNumArr[0];
isZero = false;
}
result += capitalNumArr[parseInt(numStr)]
}
}else{
for(var a = 0; a < unitArr.length; a++){
var unit = unitArr[a];
if(numStr.length > unit.index){
var unitNum = numStr.substr(0, numStr.length - unit.index);
var numStr = numStr.substr(numStr.length - unit.index);
result += tempParse(unitNum, isZero);
if(!isZero){
result += unit.unit;
}
}
}
isZero = false;
}
return result;
}
return tempParse(num);
}
// 使用
parseNum(105023213);
// 壹亿零伍佰零贰万叁仟贰佰壹拾叁
javascript数字转大写
最新推荐文章于 2024-03-16 14:57:21 发布