js實現(xiàn)人民幣大寫金額形式轉(zhuǎn)換
來源:易賢網(wǎng) 閱讀:1427 次 日期:2016-07-06 14:22:24
溫馨提示:易賢網(wǎng)小編為您整理了“js實現(xiàn)人民幣大寫金額形式轉(zhuǎn)換”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家詳細介紹了js實現(xiàn)人民幣大寫金額形式轉(zhuǎn)換的相關資料,需要的朋友可以參考下

本文實例為大家分享了js實現(xiàn)金額轉(zhuǎn)大寫的相關代碼,供大家參考,具體內(nèi)容如下:

function convertCurrency(num) { //轉(zhuǎn)成人民幣大寫金額形式

  var str1 = '零壹貳叁肆伍陸柒捌玖'; //0-9所對應的漢字

  var str2 = '萬仟佰拾億仟佰拾萬仟佰拾元角分'; //數(shù)字位所對應的漢字

  var str3; //從原num值中取出的值

  var str4; //數(shù)字的字符串形式

  var str5 = ''; //人民幣大寫金額形式

  var i; //循環(huán)變量

  var j; //num的值乘以100的字符串長度

  var ch1; //數(shù)字的漢語讀法

  var ch2; //數(shù)字位的漢字讀法

  var nzero = 0; //用來計算連續(xù)的零值是幾個

  num = Math.abs(num).toFixed(2); //將num取絕對值并四舍五入取2位小數(shù)

  str4 = (num * 100).toFixed(0).toString(); //將num乘100并轉(zhuǎn)換成字符串形式

  j = str4.length; //找出最高位

  if (j > 15) {

    return '溢出';

  }

  str2 = str2.substr(15 - j); //取出對應位數(shù)的str2的值。如:200.55,j為5所以str2=佰拾元角分

  //循環(huán)取出每一位需要轉(zhuǎn)換的值

  for (i = 0; i str3 = str4.substr(i, 1); //取出需轉(zhuǎn)換的某一位的值

    if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //當所取位數(shù)不為元、萬、億、萬億上的數(shù)字時

      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("拾元零", "拾元"));

      }

    };

  });

}

以上就是本文的全部內(nèi)容,希望對大家學習javascript程序設計有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:js實現(xiàn)人民幣大寫金額形式轉(zhuǎn)換

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)