最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)完美兼容各大瀏覽器的人民幣大小寫(xiě)相互轉(zhuǎn)換

 更新時(shí)間:2015年10月29日 08:51:17   投稿:hebedich  
在基于網(wǎng)頁(yè)的打印輸出或報(bào)表中,經(jīng)常會(huì)牽扯到金額的大寫(xiě),每次都打上去很麻煩,所以想法用一個(gè)JavaScript客戶端腳本來(lái)實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換,只需在需要顯示大寫(xiě)金額的時(shí)候調(diào)用該JS函數(shù),下面我們就來(lái)匯總下吧

/*小寫(xiě)轉(zhuǎn)大寫(xiě)*/

var xcc= "12.22";
document.write(xcc+"=>"+formatRMB(xcc)+"<br/>");



/*大寫(xiě)轉(zhuǎn)小寫(xiě)*/

var rrrr = "壹拾貳元貳角貳分";
document.write(rrrr+"=>"+parseRMB(rrrr));

輸出結(jié)果:
12.22=>壹拾貳元貳角貳分
壹拾貳元貳角貳分=>12.22

我們來(lái)看下具體實(shí)例

var c = "零壹貳叁肆伍陸柒捌玖".split("");
// ["零","壹","貳","叁","肆","伍","陸","柒","捌","玖"]
var _c = {}; // 反向?qū)?yīng)關(guān)系
for ( var i = 0; i < c.length; i++) {
  _c[c[i]] = i;
};
 
var d = "元***萬(wàn)***億***萬(wàn)";
var e = ",拾,佰,仟".split(",");
function unit4(arr) {
  var str = "", i = 0;
  while (arr.length) {
    var t = arr.pop();
    str = (c[t] + (t == 0 ? "" : e[i])) + str;
    i++;
  }
 
  str = str.replace(/[零]{2,}/g, "零");
 
  str = str.replace(/^[零]/, "");
  str = str.replace(/[零]$/, "");
  if (str.indexOf("零") == 0) {
    str = str.substring(1);
  }
  if (str.lastIndexOf("零") == str.length - 1) {
    str = str.substring(0, str.length - 1);
  }
 
  return str;
}
function _formatD(a) {
  // 轉(zhuǎn)化整數(shù)部分
  var arr = a.split(""), i = 0, result = "";
  while (arr.length) {
    var arr1 = arr.splice(-4, 4);
 
    var dw = d.charAt(i), unit = unit4(arr1);
 
    if (dw == '萬(wàn)' && !unit) {
      dw = "";
    }
    result = unit + dw + result;
    i += 4;
  }
  return result == "元" ? "" : result;
}
function _formatF(b){
   // 轉(zhuǎn)化小數(shù)部分
  b = b || "";
  switch (b.length) {
  case 0:
    return "整";
  case 1:
    return c[b] + "角";
  default:
    return c[b.charAt(0)] + "角" + c[b.charAt(1)] + "分";
  }
}
function _format(n){
  var a = ("" + n).split("."), a0 = a[0], a1 = a[1];
  return _formatD(a0) + _formatF(a1);
}
 
function parse4(u4){
  var res = 0;
  while (t = /([零壹貳叁肆伍陸柒捌玖])([拾佰仟]?)/g.exec(u4)) {
    var n = _c[t[1]], d = {
      "" : 1,
      "拾" : 10,
      "佰" : 100,
      "仟" : 1000
    }[t[2]];
    res += n * d;
    u4 = u4.replace(t[0], "");
  }
  var result = ("0000" + res);
  return result.substring(result.length - 4);
}
function _parseD(d) {
  var arr = d.replace(/[零]/g, "").split(/[萬(wàn)億]/), rs = "";
  for ( var i = 0; i < arr.length; i++) {
    rs += parse4(arr[i]);
  }
  ;
  return rs.replace(/^[0]+/, "");
};
function _parseF(f) {
  var res = "", t = f.replace(/[^零壹貳叁肆伍陸柒捌玖]+/g, "").split(""); // 去掉單位
  if (t.length) {
    res = ".";
  } else {
    return "";
  }
  ;
  for ( var i = 0; (i < t.length && i < 2); i++) {
    res += _c[t[i]];
  }
  ;
  return res;
};
function _parse(rmb) {
  var a = rmb.split("元"), a1 = a[1], a0 = a[0];
  if (a.length == 1) {
    a1 = a0;
    a0 = "";
  }
  return _parseD(a0) + _parseF(a1);
 
};
//小寫(xiě)轉(zhuǎn)大寫(xiě)
function formatRMB(num){
  var n = Number(num);
  if(!isNaN(num)){
    if(num == 0){
      return "零元整";
    }else{
      return _format(n);
    }
  }else {
    return false;
  }
}
//大寫(xiě)轉(zhuǎn)小寫(xiě)
function parseRMB(rmb) {
  if (/^[零壹貳叁肆伍陸柒捌玖元萬(wàn)億拾佰仟角分整]{2,}$/.test(rmb)) {
    var result = _parse(rmb);
    return rmb == this.formatRMB(result) ? result : result + "(?)";
  } else {
    return false;
  }
};
/*小寫(xiě)轉(zhuǎn)大寫(xiě)*/
var xcc= "12.22";
document.write(xcc+"=>"+formatRMB(xcc)+"<br/>");
 
/*大寫(xiě)轉(zhuǎn)小寫(xiě)*/
var rrrr = "壹拾貳元貳角貳分";
document.write(rrrr+"=>"+parseRMB(rrrr));

再來(lái)看一個(gè)將RMB轉(zhuǎn)化為大寫(xiě)的例子

//人民幣金額轉(zhuǎn)大寫(xiě)程序 JavaScript版
  //CopyRight Bardo QI
  function numToCny(num){
  var capUnit = ['萬(wàn)','億','萬(wàn)','圓',''];
  var capDigit = { 2:['角','分',''], 4:['仟','佰','拾','']};
  var capNum=['零','壹','貳','叁','肆','伍','陸','柒','捌','玖'];
  if (((num.toString()).indexOf('.') > 16)||(isNaN(num)))
  return '';
  num = (Math.round(num*100)/100).toString();
  num =((Math.pow(10,19-num.length)).toString()).substring(1)+num;
  var i,ret,j,nodeNum,k,subret,len,subChr,CurChr=[];
  for (i=0,ret='';i<5;i++,j=i*4+Math.floor(i/4)){
  nodeNum=num.substring(j,j+4);
  for(k=0,subret='',len=nodeNum.length;((k
  CurChr[k%2] = capNum[nodeNum.charAt(k)]+((nodeNum.charAt(k)==0)?'':capDigit[len][k]);
  if (!((CurChr[0]==CurChr[1]) && (CurChr[0]==capNum[0])))
  if(!((CurChr[k%2] == capNum[0]) && (subret=='') && (ret=='')))
  subret += CurChr[k%2];
  }
  subChr = subret + ((subret=='')?'':capUnit[i]);
  if(!((subChr == capNum[0]) && (ret=='')))
  ret += subChr;
  }
  ret=(ret=='')? capNum[0]+capUnit[3]: ret;
  return ret;
  }

相關(guān)文章

  • 使用JS代碼實(shí)現(xiàn)點(diǎn)擊按鈕下載文件

    使用JS代碼實(shí)現(xiàn)點(diǎn)擊按鈕下載文件

    有時(shí)候我們?cè)诰W(wǎng)頁(yè)上需要增加一個(gè)下載按鈕,讓用戶能夠點(diǎn)擊后下載頁(yè)面上的資料,那么怎樣才能實(shí)現(xiàn)功能呢?今天小編給大家分享兩種方法實(shí)現(xiàn)js實(shí)現(xiàn)點(diǎn)擊按鈕下載文件,需要的朋友參考下吧
    2016-11-11
  • 微信小程序自定義彈出模態(tài)框禁止底部滾動(dòng)功能

    微信小程序自定義彈出模態(tài)框禁止底部滾動(dòng)功能

    這篇文章主要介紹了微信小程序自定義彈出模態(tài)框禁止底部滾動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • javascript放大鏡效果的簡(jiǎn)單實(shí)現(xiàn)

    javascript放大鏡效果的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要是對(duì)javascript放大鏡效果的簡(jiǎn)單實(shí)現(xiàn)進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12
  • uniapp實(shí)現(xiàn)tabs切換(可滑動(dòng))效果實(shí)例

    uniapp實(shí)現(xiàn)tabs切換(可滑動(dòng))效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)tabs切換(可滑動(dòng))效果的相關(guān)資料,tabs切換無(wú)論是在app端還是小程序或者H5頁(yè)面都是很常見(jiàn)的功能,文中通過(guò)實(shí)例代碼介紹的很詳細(xì),需要的朋友可以參考下
    2023-07-07
  • easyui window refresh 刷新兩次的解決方法(推薦)

    easyui window refresh 刷新兩次的解決方法(推薦)

    下面小編就為大家?guī)?lái)一篇easyui window refresh 刷新兩次的解決方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • JavaScript indexOf()原理及使用方法詳解

    JavaScript indexOf()原理及使用方法詳解

    這篇文章主要介紹了JavaScript indexOf()原理及使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 無(wú)刷新上傳文件并返回自定義值

    無(wú)刷新上傳文件并返回自定義值

    本文給大家簡(jiǎn)單分享了一下個(gè)人項(xiàng)目中解決無(wú)刷新上傳文件的方法和示例,有需要的小伙伴可以參考下。
    2015-06-06
  • 禁止IE用右鍵的JS代碼

    禁止IE用右鍵的JS代碼

    這篇文章主要介紹了禁止IE用右鍵的JS代碼,有需要的朋友可以參考一下
    2013-12-12
  • webpack4 SCSS提取和懶加載的示例

    webpack4 SCSS提取和懶加載的示例

    這篇文章主要介紹了webpack4 SCSS提取和懶加載的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果示例【附demo源碼下載】

    JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果示例【附demo源碼下載】

    這篇文章主要介紹了JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果,涉及javascript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)修改頁(yè)面元素屬性的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-09-09

最新評(píng)論

崇州市| 盐池县| 抚顺市| 奎屯市| 宁河县| 兴城市| 天镇县| 维西| 榆林市| 新宾| 泊头市| 望都县| 天祝| 台山市| 海安县| 长武县| 当阳市| 嘉荫县| 长阳| 电白县| 鄂伦春自治旗| 北海市| 辉南县| 丽江市| 南木林县| 广汉市| 容城县| 抚州市| 剑川县| 偏关县| 开化县| 雅安市| 松溪县| 琼海市| 额敏县| 阳城县| 长泰县| 泾川县| 石台县| 广东省| 荔浦县|