将数字转换成大写的人民币表达式的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 相关文章推荐
js no-repeat写法 背景不重复
Mar 18 Javascript
JS 实现双色表格实现代码
Nov 24 Javascript
jquery 鼠标滑动显示详情应用示例
Jan 24 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
May 12 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 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
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
jquery replace方法去空格
2017/05/08 jQuery
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
Python科学计算环境推荐——Anaconda
2014/06/30 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
pytorch的batch normalize使用详解
2020/01/15 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
企业节能减排实施方案
2014/03/19 职场文书
班组长竞聘书
2014/03/31 职场文书
小学语文教学随笔
2015/08/14 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android