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循环map功能的代码
Feb 26 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
js的延迟执行问题分析
Jun 23 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
jQuery实现的进度条效果
Jul 15 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
基于JavaScript实现带缩略图的轮播效果
Jan 12 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
es6中let和const的使用方法详解
Feb 24 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/08/08 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
js压缩利器
2007/02/20 Javascript
js直接编辑当前cookie的脚本
2008/09/14 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
原生js实现日期联动
2015/01/12 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
百度地图api如何使用
2015/08/03 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
Python全局变量用法实例分析
2016/07/19 Python
Python判断两个对象相等的原理
2017/12/12 Python
python2与python3共存问题的解决方法
2018/09/18 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
学习教师法的心得体会
2014/09/03 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
调解协议书范本
2016/03/21 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python