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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
java script编程起步(第三课)
Jan 10 Javascript
checkbox 复选框不能为空
Jul 11 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 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中ini_set与ini_get用法实例
2014/11/04 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
Python数据库小程序源代码
2019/09/15 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
安全施工标语
2014/06/07 职场文书
个人年终总结怎么写
2015/03/09 职场文书
升学宴家长致辞
2015/07/27 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android