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获得服务器端控件的ID的实现代码
Dec 28 Javascript
JS文本框默认值处理详解
Jul 10 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
原生JavaScript实现合并多个数组示例
Sep 21 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
js原生之焦点图转换加定时器实例
Dec 12 Javascript
详解nuxt sass全局变量(公共scss解决方案)
Jun 27 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
vue组件vue-esign实现电子签名
Apr 21 Vue.js
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
用libTemplate实现静态网页的生成
2006/10/09 PHP
使用数据库保存session的方法
2006/10/09 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
JS Timing
2007/04/21 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
百度地图api如何使用
2015/08/03 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
零基础小白多久能学会python
2020/06/22 Python
如何清空python的变量
2020/07/05 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
最新党员思想汇报
2014/01/01 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
秋季运动会活动方案
2014/02/05 职场文书
《小池塘》教学反思
2014/02/28 职场文书
商务英语广告词大全
2014/03/18 职场文书
中学生家长评语大全
2014/04/16 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python