JS实现将数字金额转换为大写人民币汉字的方法


Posted in Javascript onAugust 02, 2016

本文实例讲述了JS实现将数字金额转换为大写人民币汉字的方法。分享给大家供大家参考,具体如下:

//代码如下所示:
function convertCurrency(money) {
  //汉字的数字
  var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
  //基本单位
  var cnIntRadice = new Array('', '拾', '佰', '仟');
  //对应整数部分扩展单位
  var cnIntUnits = new Array('', '万', '亿', '兆');
  //对应小数部分单位
  var cnDecUnits = new Array('角', '分', '毫', '厘');
  //整数金额时后面跟的字符
  var cnInteger = '整';
  //整型完以后的单位
  var cnIntLast = '元';
  //最大处理的数字
  var maxNum = 999999999999999.9999;
  //金额整数部分
  var integerNum;
  //金额小数部分
  var decimalNum;
  //输出的中文金额字符串
  var chineseStr = '';
  //分离金额后用的数组,预定义
  var parts;
  if (money == '') { return ''; }
  money = parseFloat(money);
  if (money >= maxNum) {
    //超出最大处理数字
    return '';
  }
  if (money == 0) {
    chineseStr = cnNums[0] + cnIntLast + cnInteger;
    return chineseStr;
  }
  //转换为字符串
  money = money.toString();
  if (money.indexOf('.') == -1) {
    integerNum = money;
    decimalNum = '';
  } else {
    parts = money.split('.');
    integerNum = parts[0];
    decimalNum = parts[1].substr(0, 4);
  }
  //获取整型部分转换
  if (parseInt(integerNum, 10) > 0) {
    var zeroCount = 0;
    var IntLen = integerNum.length;
    for (var i = 0; i < IntLen; i++) {
      var n = integerNum.substr(i, 1);
      var p = IntLen - i - 1;
      var q = p / 4;
      var m = p % 4;
      if (n == '0') {
        zeroCount++;
      } else {
        if (zeroCount > 0) {
          chineseStr += cnNums[0];
        }
        //归零
        zeroCount = 0;
        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
      }
      if (m == 0 && zeroCount < 4) {
        chineseStr += cnIntUnits[q];
      }
    }
    chineseStr += cnIntLast;
  }
  //小数部分
  if (decimalNum != '') {
    var decLen = decimalNum.length;
    for (var i = 0; i < decLen; i++) {
      var n = decimalNum.substr(i, 1);
      if (n != '0') {
        chineseStr += cnNums[Number(n)] + cnDecUnits[i];
      }
    }
  }
  if (chineseStr == '') {
    chineseStr += cnNums[0] + cnIntLast + cnInteger;
  } else if (decimalNum == '') {
    chineseStr += cnInteger;
  }
  return chineseStr;
}
Javascript 相关文章推荐
jQuery 阴影插件代码分享
Jan 09 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
May 16 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
JS前端笔试题分析
Dec 19 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
基于Vue实例生命周期(全面解析)
Aug 16 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
详解Vue双向数据绑定原理解析
Sep 11 Javascript
获取layer.open弹出层的返回值方法
Aug 20 Javascript
AngularJS基础 ng-model-options 指令简单示例
Aug 02 #Javascript
jQuery树形控件zTree使用小结
Aug 02 #Javascript
jquery 判断selection range 是否在容器中的简单实例
Aug 02 #Javascript
AngularJS基础 ng-model 指令详解及示例代码
Aug 02 #Javascript
JS获取input file绝对路径的方法(推荐)
Aug 02 #Javascript
JavaScript实现复制文章自动添加版权
Aug 02 #Javascript
js获取上传文件的绝对路径实现方法
Aug 02 #Javascript
You might like
PHP通用检测函数集合
2011/02/08 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
jQuery之按钮组件的深入解析
2013/06/19 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python open()文件处理使用介绍
2014/11/30 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python统计单词出现的次数
2018/04/04 Python
python线程池threadpool实现篇
2018/04/27 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
公司授权委托书
2014/04/04 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android