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

 更新时间:2016年08月02日 10:25:58   作者:Quber  
这篇文章主要介绍了JS实现将数字金额转换为大写人民币汉字的方法,涉及javascript字符串与数组操作的相关技巧,需要的朋友可以参考下

本文实例讲述了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;
}

PS:这里再为大家提供一款在线工具供大家参考:

人民币大写在线转换工具:
http://tools.jb51.net/zhuanhuanqi/rmbupper

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》及《JavaScript遍历算法与技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • js验证框架实现代码分享

    js验证框架实现代码分享

    这篇文章主要为大家分享了一个非常实用的js验证框架实现源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • javascript实现循环广告条效果

    javascript实现循环广告条效果

    这篇文章主要为大家详细介绍了javascript实现循环广告条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • js window.addEventListener 简介

    js window.addEventListener 简介

    window.addEventListener是JavaScript中用于添加事件监听器的方法,允许在发生特定事件时执行函数,本文给大家介绍js window.addEventListener 是什么,感兴趣的朋友一起看看吧
    2024-09-09
  • JavaScript手写call,apply,bind方法

    JavaScript手写call,apply,bind方法

    这篇文章主要介绍了JavaScript手写call,apply,bind方法,call,bind,apply方法都是JavaScript原生的方法,挂载在Function原型上,使得所有函数都可以调用
    2022-06-06
  • TypeScript中类型映射的使用

    TypeScript中类型映射的使用

    TypeScript中的映射类型和数学中的映射类似,能够将一个集合的元素转换为新集合的元素,本文就来介绍一下TypeScript中类型映射的使用,感兴趣的可以了解一下
    2023-10-10
  • 微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例

    微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例

    这篇文章主要介绍了微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能,涉及微信小程序事件响应、页面元素属性动态操作实现滑动与蒙层功能相关技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • 原生js基于canvas实现一个简单的前端截图工具代码实例

    原生js基于canvas实现一个简单的前端截图工具代码实例

    这篇文章主要介绍了原生js基于canvas实现一个简单的前端截图工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Save a File Using a File Save Dialog Box

    Save a File Using a File Save Dialog Box

    Save a File Using a File Save Dialog Box...
    2007-06-06
  • JavaScript 替换Html标签实现代码

    JavaScript 替换Html标签实现代码

    这种技术被广泛应用于表单验证,语法高亮和危险字符过滤中。一段话如果很长,如果不想像下面那样替换,我们得想些办法了。
    2009-10-10
  • 详解Howler.js Web音频播放终极解决方案

    详解Howler.js Web音频播放终极解决方案

    这篇文章主要介绍了详解Howler.js Web音频播放终极解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论