将数字转换成大写的人民币表达式的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 相关文章推荐
锋利的jQuery 要点归纳(一) jQuery选择器
Mar 21 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
JavaScript对象学习小结
Sep 02 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
使用jquery提交form表单并自定义action的实现代码
May 25 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
微信小程序如何使用云开发
May 17 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
Oct 25 Javascript
js实现秒表计时器
Dec 16 Javascript
判断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实现的支持断点续传的文件下载类
2014/09/23 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
js确定对象类型方法
2012/03/30 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
windows下python安装pip方法详解
2020/02/10 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
运动会邀请函范文
2014/02/06 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
歼十出击观后感
2015/06/11 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
使用golang编写一个并发工作队列
2021/05/08 Golang
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js