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 相关文章推荐
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
Oct 18 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
JavaScript 总结几个提高性能知识点(推荐)
Feb 20 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 Javascript
详解使用Node.js 将txt文件转为Excel文件
Jul 05 Javascript
JS中使用new Option()实现时间联动效果
Dec 10 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php cli换行示例
2014/04/22 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
详解Vue之计算属性
2020/06/20 Javascript
使用python实现接口的方法
2017/07/07 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
物流专业大学的自我评价
2014/01/11 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
文明班级申报材料
2014/12/24 职场文书