js实现完美兼容各大浏览器的人民币大小写相互转换

 更新时间:2015年10月30日 13:43  点击:2102

/*小写转大写*/

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

/*大写转小写*/

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

输出结果:
12.22=>壹拾贰元贰角贰分
壹拾贰元贰角贰分=>12.22

我们来看下具体实例

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)+"<br/>"); /*大写转小写*/var rrrr = "壹拾贰元贰角贰分";document.write(rrrr+"=>"+parseRMB(rrrr));

再来看一个将RMB转化为大写的例子

//人民币金额转大写程序 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)?'':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;  }

[!--infotagslink--]

相关文章

  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • js实现浏览器打印功能的示例代码

    这篇文章主要介绍了js如何实现浏览器打印功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • Mysql大小写敏感的问题

    一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的:复制代码 代码如下: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WH...2015-03-15
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    第一种,只区分浏览器,不考虑版本 复制代码 代码如下:function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; if (isOp...2014-05-31
  • 详解Vue Cli浏览器兼容性实践

    这篇文章主要介绍了详解Vue Cli浏览器兼容性实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-09
  • 如何使用 JavaScript 操作浏览器历史记录 API

    这篇文章主要介绍了如何使用 JavaScript 操作浏览器历史记录 API,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-24
  • Python获取浏览器窗口句柄过程解析

    这篇文章主要介绍了Python获取浏览器窗口句柄过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26
  • vue如何调用浏览器分享功能详解

    这篇文章主要给大家介绍了关于vue如何调用浏览器分享的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-20
  • js判断浏览器类型,版本的代码(附多个实例代码)

    在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。 JavaScrip...2014-05-31
  • JS跨浏览器解析XML应用过程详解

    这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
  • JAVA读取文件流,设置浏览器下载或直接预览操作

    这篇文章主要介绍了JAVA读取文件流,设置浏览器下载或直接预览操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-09
  • linux grep不区分大小写查找字符串方法

    这篇文章主要介绍了linux grep不区分大小写查找字符串方法,需要的朋友可以参考下...2021-05-07
  • 网页自动调用国内双核浏览器的极速模式的实现方法

    由于国内好几个浏览器都是双核浏览器(蛋痛,做一个浏览器壳就说国产,而且使用率高),有时打开网页会出现不兼容模式,在极速模式下是好的,现在我们来用代码实现网页自动调用国内...2016-09-20
  • C# 模拟浏览器并自动操作的实例代码

    这篇文章主要介绍了C# 模拟浏览器并自动操作的实例代码,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
  • vue项目中禁用浏览器缓存配置案例

    这篇文章主要介绍了vue项目中禁用浏览器缓存配置案例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-09-12
  • Python爬虫之Selenium实现关闭浏览器

    这篇文章主要介绍了Python爬虫之Selenium实现关闭浏览器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-04
  • MYSQL的binary解决mysql数据大小写敏感问题的方法

    复制代码 代码如下:mysql> select binary 'ABCD'='abcd' COM1, 'ABCD'='abcd' COM2;+--------+-----------+| COM1 | COM2 |+--------+-----------+| 0 | 1 |+---------+-----------+1 row in set...2013-10-04
  • 基于jQuery1.9版本如何判断浏览器版本类型

    在jquery.1.9以前的版本,可以使用$.browser很轻松的判断浏览器的类型和版本,但是在1.9中和以后的版本中,$.browser已经被删除,下面就介绍一下如何实现此功能,希望能够给需要的朋友带来帮助...2016-01-14