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 相关文章推荐
js tab 选项卡
Apr 26 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
Mar 05 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
Dec 04 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
微信小程序版翻牌小游戏
Jan 26 Javascript
微信小程序 行的删除和增加操作实现详解
Sep 29 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
VUE 单页面使用 echart 窗口变化时的用法
Jul 30 Javascript
vue keep-alive的简单总结
Jan 25 Vue.js
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
国内咖啡文化
2021/03/03 咖啡文化
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
使用php清除bom示例
2014/03/03 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
python中的装饰器详解
2015/04/13 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python变量访问权限控制详解
2019/06/29 Python
python os.fork() 循环输出方法
2019/08/08 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
师范大学毕业自我鉴定
2013/11/21 职场文书
岗位竞聘书范文
2014/03/31 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
国庆节新闻稿
2015/07/17 职场文书
中秋节主题班会
2015/08/14 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python