将数字转换成大写的人民币表达式的js函数


Posted in Javascript onSeptember 21, 2014

将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码

function changeNumMoneyToChinese(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) {
    alert('超出最大处理数字');
    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 相关文章推荐
javascript flash下fromCharCode和charCodeAt方法使用说明
Jan 12 Javascript
IE 下的只读 innerHTML
Aug 21 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
JSON字符串和JSON对象相互转化实例详解
Jan 05 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
前端构建工具之gulp的语法教程
Jun 12 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 Javascript
vue项目支付功能代码详解
Feb 18 Vue.js
判断window.onload是否多次使用的方法
Sep 21 #Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 #Javascript
JS实现清除指定cookies的方法
Sep 20 #Javascript
JS合并数组的几种方法及优劣比较
Sep 19 #Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
Sep 19 #Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 #Javascript
JS应用正则表达式转换大小写示例
Sep 18 #Javascript
You might like
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
php中static和const关键字用法分析
2016/12/07 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
javascript中的new使用
2010/03/20 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
面试常见的js算法题
2017/03/23 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Windows下为Python安装Matplotlib模块
2015/11/06 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python实现手机通讯录搜索功能
2018/02/22 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
python3中编码获取网页的实例方法
2020/11/16 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
会计专业推荐信
2013/10/29 职场文书
物业经理自我鉴定
2014/03/03 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书