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 相关文章推荐
20个非常棒的Jquery实用工具 国外文章
Jan 01 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
Aug 30 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
jQuery中index()的用法分析
Sep 05 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
js获取Get值的方法
Sep 29 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
纯js仿淘宝京东商品放大镜功能
Mar 02 Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 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
第五节 克隆 [5]
2006/10/09 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
生产车间班组长岗位职责
2014/01/06 职场文书
中学生获奖感言
2014/02/04 职场文书
慈善晚会策划方案
2014/05/14 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
高中开学感言
2015/08/01 职场文书