js数字转换成汉字

大家在工作中经常遇到需要将数据转换成汉字的情况,比如 1234转为 一千二百三十四的形式

代码如下:

1、定义变量

var chnNumChar =  ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
var chnUnitSection = ["", "万", "亿", "万亿", "亿亿"];
var chnUnitChar = ["", "十", "百", "千"];

2、获取中文

/**
 * 获取中文
 * @param num
 * @returns {*}
 */
SectionToChinese: function (section) {
 var ori = section;
 var strIns = '';
 var chnStr = '';
 var unitPos = 0;
 var zero = true;
 while (section > 0) {
 var v = section % 10;
 if (v === 0) {
 if (!zero) {
 zero = true;
 chnStr = this.chnNumChar[v] + chnStr;
 }
 } else {
 zero = false;
 strIns = this.chnNumChar[v];
 strIns += this.chnUnitChar[unitPos];
 chnStr = strIns + chnStr;
 }
 unitPos++;
 section = Math.floor(section / 10);
 }
 if (ori < 20) {
 chnStr = chnStr.replace('一十', '十');
 }
 return chnStr;
}

3、 数字转中文

/**
 * 数字转中文
 * @param num
 * @returns {*}
 */
numberToChanie: function (num) {
 var unitPos = 0;
 var strIns = '', chnStr = '';
 var needZero = false;

 if (num === 0) {
 return JsUlits.chnNumChar[0];
 }

 while (num > 0) {
 var section = num % 10000;
 if (needZero) {
 chnStr = this.chnNumChar[0] + chnStr;
 }
 strIns = this.SectionToChinese(section);
 strIns += (section !== 0) ? this.chnUnitSection[unitPos] : this.chnUnitSection[0];
 chnStr = strIns + chnStr;
 needZero = (section < 1000) && (section > 0);
 num = Math.floor(num / 10000);
 unitPos++;
 }
 return chnStr;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值