js实现人民币大写金额形式转换


Posted in Javascript onApril 27, 2016

本文实例为大家分享了js实现金额转大写的相关代码,供大家参考,具体内容如下

function convertCurrency(num) { //转成人民币大写金额形式
  var str1 = '零壹贰叁肆伍陆柒捌玖'; //0-9所对应的汉字
  var str2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'; //数字位所对应的汉字
  var str3; //从原num值中取出的值
  var str4; //数字的字符串形式
  var str5 = ''; //人民币大写金额形式
  var i; //循环变量
  var j; //num的值乘以100的字符串长度
  var ch1; //数字的汉语读法
  var ch2; //数字位的汉字读法
  var nzero = 0; //用来计算连续的零值是几个
  num = Math.abs(num).toFixed(2); //将num取绝对值并四舍五入取2位小数
  str4 = (num * 100).toFixed(0).toString(); //将num乘100并转换成字符串形式
  j = str4.length; //找出最高位
  if (j > 15) {
    return '溢出';
  }
  str2 = str2.substr(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分
  //循环取出每一位需要转换的值
  for (i = 0; i str3 = str4.substr(i, 1); //取出需转换的某一位的值
    if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时
      if (str3 == '0') {
        ch1 = '';
        ch2 = '';
        nzero = nzero + 1;
      } else {
        if (str3 != '0' && nzero != 0) {
          ch1 = '零' + str1.substr(str3 * 1, 1);
          ch2 = str2.substr(i, 1);
          nzero = 0;
        } else {
          ch1 = str1.substr(str3 * 1, 1);
          ch2 = str2.substr(i, 1);
          nzero = 0;
        }
      }
    } else { //该位是万亿,亿,万,元位等关键位
      if (str3 != '0' && nzero != 0) {
        ch1 = "零" + str1.substr(str3 * 1, 1);
        ch2 = str2.substr(i, 1);
        nzero = 0;
      } else {
        if (str3 != '0' && nzero == 0) {
          ch1 = str1.substr(str3 * 1, 1);
          ch2 = str2.substr(i, 1);
          nzero = 0;
        } else {
          if (str3 == '0' && nzero >= 3) {
            ch1 = '';
            ch2 = '';
            nzero = nzero + 1;
          } else {
            if (j >= 11) {
              ch1 = '';
              nzero = nzero + 1;
            } else {
              ch1 = '';
              ch2 = str2.substr(i, 1);
              nzero = nzero + 1;
            }
          }
        }
      }
    } if (i == (j - 11) || i == (j - 3)) { //如果该位是亿位或元位,则必须写上
      ch2 = str2.substr(i, 1);
    }
    str5 = str5 + ch1 + ch2;
    if (i == j - 1 && str3 == '0') { //最后一位(分)为0时,加上“整”
      str5 = str5 + '整';
    }
  }
  if (num == 0) {
    str5 = '零元整';
  }
  if (str5.indexOf("分") == -1) {
    if (str5.indexOf("拾元零") > 0) {
      str5 = str5.replace("拾元零", "拾元");
    };
  }
  return str5;
}
 
function doConvert(m, n) {
  Ext.getCmp(m).on('change', function() {
    var objm = Ext.getCmp(m);
    var objn = Ext.getCmp(n);
    if (!(/^\d+(\.\d+)?$/.test(objm.getValue()))) {
      objn.setValue("");
    } else {
      var money = convertCurrency(objm.getValue());
      if (objm.getValue() == "") {
        objn.setValue("");
      } else {
        objn.setValue(money);
      }
    }
    var money = convertCurrency(objm.getValue());
    if (money.indexOf("拾元零") > 0) {
      if (money.indexOf("分") == -1) {
        objn.setValue(money.replace("拾元零", "拾元"));
      }
    };
  });
}

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
Javascript学习指南
Dec 01 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
JS实现转动随机数抽奖特效代码
Apr 16 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
详解vue-cli 本地开发mock数据使用方法
May 29 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
May 07 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
JavaScript, select标签元素左右移动功能实现
May 14 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 #Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 #Javascript
JavaScript弹窗基础篇
Apr 27 #Javascript
jQuery绑定事件on()与弹窗的简要概述
Apr 27 #Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 #Javascript
js实现纯前端的图片预览
Apr 27 #Javascript
简介BootStrap model弹出框的使用
Apr 27 #Javascript
You might like
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python面向对象之Web静态服务器
2019/09/03 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
python属于软件吗
2020/06/18 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
旅游安全协议书
2014/04/21 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
高一军训决心书
2015/02/05 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
合作合同协议书
2016/03/21 职场文书
如何拟写通知正文?
2019/04/02 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS