js数字金额转繁体金额转换方法

function numberToChinese(num) {
  var cnNums = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
  var cnIntRadice = ["","拾","佰","仟"];
  var cnIntUnits = ["","万","亿","兆"];
  var cnDecUnits = ["角","分","毫","厘"];
  var cnInteger = "整";
  var cnIntLast = "元";
  var maxNum = 999999999999999.9999;
  var integerNum, decimalNum, chineseStr = "";
  var parts;
  
  if (num === "") {
    return "";
  }
  
  num = parseFloat(num);
  if (num >= maxNum) {
    return "";
  }
  
  if (isNaN(num)) {
    return "";
  }
  
  if (num === 0) {
    chineseStr = cnNums[0] + cnIntLast + cnInteger;
    return chineseStr;
  }
  
  num = num.toString();
  if (num.indexOf(".") === -1) {
    integerNum = num;
    decimalNum = '';
  } else {
    parts = num.split(".");
    integerNum = parts[0];
    decimalNum = parts[1].substr(0, 4);
  }
  
  if (parseInt(integerNum, 10) > 0) {
    var zeroCount = 0;
    var IntLen = integerNum.length;
    for (var i = 0; i < IntLen; i++) {
      var n = integerNum.substr(i, 1);
      var p = IntLen - i - 1;
      var q = p / 4;
      var m = p % 4;
      if (n === "0") {
        zeroCount++;
      } else {
        if (zeroCount > 0) {
          chineseStr += cnNums[0];
        }
        zeroCount = 0;
        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
      }
      if (m === 0 && zeroCount < 4) {
        chineseStr += cnIntUnits[q];
      }
    }
    chineseStr += cnIntLast;
  }
  
  if (decimalNum !== '') {
    var decLen = decimalNum.length;
    for (var j = 0; j < decLen; j++) {
      var m = decimalNum.substr(j, 1);
      if (m !== '0') {
        chineseStr += cnNums[Number(m)] + cnDecUnits[j];
      }
    }
  }
  if (chineseStr === '') {
    chineseStr += cnNums[0] + cnIntLast + cnInteger;
  } else if (decimalNum === '') {
    chineseStr += cnInteger;
  }
  
  // 处理 "一十" 的情况
  chineseStr = chineseStr.replace("壹拾", "拾");
  // 处理 "零拾" 的情况
  chineseStr = chineseStr.replace("零拾", "零");
  // 去除多余的 "零"
  while (chineseStr.indexOf("零零") !== -1) {
    chineseStr = chineseStr.replace("零零", "零");
  }
  // 去除连续的 "零",保留一个
  chineseStr = chineseStr.replace(/(零)\1+/g, "零");
  // 去除结尾的 "零"
  chineseStr = chineseStr.replace(/(零)+$/, "");

  return chineseStr;
}

传入 89.56 得到 捌拾玖元伍角陆分

传入 1001 得到 壹仟零壹元整

传入 1001.2356 得到 壹仟零壹元贰角叁分伍毫陆厘

模仿语言包式的简繁换功能插件,轻松实现繁体和简体互换,很方便,只有一个JS文件。Std_StranJF.js文件只支持GB2312码,big52gb.js支持utf-8。   一、将繁简互换JS文件上传至空间:   如果您调用的是,则将繁简互换JS文件(Std_StranJF.Js)上传至网站的js目录中。当然您也可以上传至网站的其他何地方,如根目录下。如果上传在网站根目录下,则要将调用代码改成:   二、页面调用的方法:   在您的网站中请按以下方法添加以下的代码:   1. 在页面中加上以下链接:   繁体中文   这个是每个页面中显示进行简繁换的链接,您可以放在页面顶部,如顶部的导航处。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝首页顶}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“{$ShowChannel} {$Rss}{$Wap}”,修改成“{$ShowChannel} |繁体中文|{$Rss}{$Wap}”即可。当然您也可以放在任何您想要放置的地方。   2. 在页面中放以下代码:      这个是每个页面中要调用繁体和简体互换的JS代码,您放在页面底部,如前面。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝网页底}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“”,修改成“”即可。当然您也可以放在任何您想要放置的地方。   小提示:您也可以不修改自定义标签,而是通过系统模板批量替换功能来添加以上的代码。但利用修改模板的自定义标签内容更方便。在修改了自定义标签后要记得更新您网站的缓存。若您开启了网站的生成功能,则在添加了代码后要生成全部相关的页面。   三、繁简互换JS文件参数的修改:   您可以进一步修改繁简互换JS文件(Std_StranJF.Js)以达到您想要的效果。请以记事本打开修改Std_StranJF.Js文件:   var Default_isFT = 0 //默认是否繁体,0-简体,1-繁体   var StranIt_Delay = 50 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来)   同时如果您的网站中有本文件中没有放入的繁体与简体互换的内容,则可以在本文件中进一步添加与扩充,以满足您的应用需求。   小提示:本插件同时可用于论坛等需要进行繁简互换的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值