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 相关文章推荐
Jquery 最近浏览过的商品的功能实现代码
May 14 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
Jan 29 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
angular forEach方法遍历源码解读
Jan 25 Javascript
VueJs使用Amaze ui调整列表和内容页面
Nov 30 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 Javascript
layui使用label标签的方法
Sep 14 Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 11 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 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 动态随机生成验证码类代码
2010/04/09 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
javascript中的new使用
2010/03/20 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
Javascript的this用法
2017/01/16 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
Python面试题集
2012/03/08 面试题
UNIX文件系统常用命令
2012/05/25 面试题
经典而简洁的婚礼主持词
2014/03/13 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
另类冲刺标语
2014/06/24 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
医生个人年度总结
2015/02/28 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫