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 相关文章推荐
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
JQUBar 基于JQUERY的柱状图插件
Nov 23 Javascript
html超链接打开窗口大小的方法
Mar 05 Javascript
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
Oct 17 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
Jan 07 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
详解vuex状态管理模式
Nov 01 Javascript
原生JS实现无缝轮播图片
Jun 24 Javascript
vue 使用class创建和清除水印的示例代码
Dec 25 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
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
微信小程序 实现点击添加移除class
2017/06/12 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
python3.5使用tkinter制作记事本
2016/06/20 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
解决Django no such table: django_session的问题
2020/04/07 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
深入理解Python 多线程
2020/06/16 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
小学学校评估方案
2014/06/08 职场文书
安全口号大全
2014/06/21 职场文书
实习协议书范本
2014/09/25 职场文书
爱心助学感谢信
2015/01/21 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL