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 (三) 管理jQuery包装集
Feb 23 Javascript
js setTimeout opener的用法示例详解
Oct 23 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 Javascript
用C/C++来实现 Node.js 的模块(二)
Sep 24 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
node.js中的querystring.escape方法使用说明
Dec 10 Javascript
jquery ui dialog替代confirm实例分析
Jan 25 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
AngularJS中下拉框的基本用法示例
Oct 11 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python实现简易学生信息管理系统
2020/04/05 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
python连接PostgreSQL过程解析
2020/02/09 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
解决pip install psycopg2出错问题
2020/07/09 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
生产厂长岗位职责
2014/02/21 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
三年级评语大全
2014/04/23 职场文书
节水口号标语
2014/06/19 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
python数字转对应中文的方法总结
2021/08/02 Python