将数字转换成大写的人民币表达式的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 相关文章推荐
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
jQuery之动画效果大全
Nov 09 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 Javascript
React 实现车牌键盘的示例代码
Dec 20 Javascript
js实现拖拽与碰撞检测
Sep 18 Javascript
ant design vue的form表单取值方法
Jun 01 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
第四节--构造函数和析构函数
2006/11/16 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jquery 年会抽奖程序
2011/12/22 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
深入研究React中setState源码
2017/11/17 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
vue filters的使用详解
2018/06/11 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
wxpython实现图书管理系统
2018/03/12 Python
python实现简易内存监控
2018/06/21 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
开办加工厂创业计划书
2014/01/03 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python