Heim > Web-Frontend > js-Tutorial > Hauptteil

js erreicht eine perfekte Kompatibilität mit den wichtigsten Browsern für die Konvertierung von RMB in Groß- und Kleinschreibung_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:34:36
Original
1710 Leute haben es durchsucht

/*Kleinbuchstaben in Großbuchstaben umwandeln*/

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



Nach dem Login kopieren

/*Großbuchstaben in Kleinbuchstaben umwandeln*/

var rrrr = "壹拾贰元贰角贰分";
document.write(rrrr+"=>"+parseRMB(rrrr));
Nach dem Login kopieren

Ausgabeergebnis:
12.22=>Einhundertzwanzig Dollar, zwei Cent und zwei Cent
Einhundertzwanzig Yuan, zwei Cent und zwei Cent =>12,22

Sehen wir uns ein konkretes Beispiel an

var c = "零壹贰叁肆伍陆柒捌玖".split("");
// ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
var _c = {}; // 反向对应关系
for ( var i = 0; i < c.length; i++) {
  _c[c[i]] = i;
};
 
var d = "元***万***亿***万";
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) {
  // 转化整数部分
  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 == '万' && !unit) {
      dw = "";
    }
    result = unit + dw + result;
    i += 4;
  }
  return result == "元" ? "" : result;
}
function _formatF(b){
   // 转化小数部分
  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(/[万亿]/), 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);
 
};
//小写转大写
function formatRMB(num){
  var n = Number(num);
  if(!isNaN(num)){
    if(num == 0){
      return "零元整";
    }else{
      return _format(n);
    }
  }else {
    return false;
  }
}
//大写转小写
function parseRMB(rmb) {
  if (/^[零壹贰叁肆伍陆柒捌玖元万亿拾佰仟角分整]{2,}$/.test(rmb)) {
    var result = _parse(rmb);
    return rmb == this.formatRMB(result) ? result : result + "(?)";
  } else {
    return false;
  }
};
/*小写转大写*/
var xcc= "12.22";
document.write(xcc+"=>"+formatRMB(xcc)+"
"); /*大写转小写*/ var rrrr = "壹拾贰元贰角贰分"; document.write(rrrr+"=>"+parseRMB(rrrr));
Nach dem Login kopieren

Sehen wir uns ein weiteres Beispiel für die Umrechnung von RMB in Großbuchstaben an

//人民币金额转大写程序 JavaScript版
  //CopyRight Bardo QI
  function numToCny(num){
  var capUnit = ['万','亿','万','圆',''];
  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)&#63;'':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=='')&#63;'':capUnit[i]);
  if(!((subChr == capNum[0]) && (ret=='')))
  ret += subChr;
  }
  ret=(ret=='')&#63; capNum[0]+capUnit[3]: ret;
  return ret;
  }
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage