/***
** HongShijin
** Me@HongShijin.com
** 2014-10-15 9:13:00.00000
** text/javascript
***/

(function ($)
{

Number.prototype.toRmbString = function ()
{
var c =
{
n: [38646, 22777, 36144, 21441, 32902, 20237, 38470, 26578, 25420, 29590, 25972, 36000], // "零壹贰叁肆伍陆柒捌玖整負";
u: [20191, 20336, 25342, 20140, 20191, 20336, 25342, 21513, 20191, 20336, 25342, 20806, 20191, 20336, 25342, 20740, 20191, 20336, 25342, 33836, 20191, 20336, 25342, 22278, 35282, 20998, 21400, 27627], // "仟佰拾京仟佰拾吉仟佰拾兆仟佰拾億仟佰拾萬仟佰拾圆角分厘毫";//"仟佰拾京仟佰拾吉仟佰拾兆仟佰拾亿仟佰拾万仟佰拾圆角分厘毫"
m: this
};
if (c.m < 0)
c.m *= -1;
for (var i = c.n.length - 1; i >= 0; i--)
{
c.t = c.n[i];
c[c.t] = String.fromCharCode(c.t);
c.n[i] = c[c.t];
}
for (var i = c.u.length - 1; i >= 0; i--)
{
c.t = c.u[i];
c[c.t] = String.fromCharCode(c.t);
c.u[i] = c[c.t];
}
c.t = c.m.toFixed(4).replace('.', '').replace(/^0+([0-9])/img, '$1');
if (c.t == "0")
return c[38646] + c[22278] + c[25972]; // "零圆整";

if (c.t.length > c.u.length)
throw { message: 'the input value too max.' };

c.u = c.u.splice(c.u.length - c.t.length, c.t.length);
for (var i = c.t.length - 1; i >= 0; i--)
c.t = c.t.substring(0, i) + c.n[String.charCodeAt(c.t.substring(i, i + 1)) - String.charCodeAt('0')] + c.u[i] + c.t.substring(i + 1, c.t.length);
c.m = new RegExp(c[38646] + '+[^' + c[22278] + c[33836] + c[20740] + c[20806] + c[21513] + c[20140] + ']', 'img');
c.t = c.t.replace(c.m, c[38646]); // /零+[^圆萬億兆吉京]/img, '零' //t = "壹仟零佰零拾零京叁仟零佰伍拾贰吉零仟零佰零拾零兆叁仟伍佰贰拾零億肆仟零佰贰拾零萬零仟零佰零拾伍圆壹角零分零厘伍毫";
c.m = new RegExp(c[38646] + '{2,}', 'img');
c.t = c.t.replace(c.m, c[38646]); // /零{2,}/img, '零' //t = "壹仟零零零京叁仟零伍拾贰吉零零零零兆叁仟伍佰贰拾零億肆仟零贰拾零萬零零零伍圆壹角零零伍毫"
c.m = new RegExp(c[38646] + '+([' + c[22278] + c[33836] + c[20740] + c[20806] + c[21513] + c[20140] + '])', 'img');
c.t = c.t.replace(c.m, '$1'); // /零+([圆萬億兆吉京])/img, '' //t = "壹仟零京叁仟零伍拾贰吉零兆叁仟伍佰贰拾零億肆仟零贰拾零萬零伍圆壹角零伍毫"
c.m = new RegExp('([' + c[33836] + c[20740] + c[20806] + c[21513] + c[20140] + '])[' + c[33836] + c[20740] + c[20806] + c[21513] + c[20140] + ']+', 'img');
c.t = c.t.replace(c.m, '$1'); // /([萬億兆吉京])[萬億兆吉京]+/img, '$1' //t = "壹仟京叁仟零伍拾贰吉兆叁仟伍佰贰拾億肆仟零贰拾萬零伍圆壹角零伍毫"
c.m = new RegExp('^[' + c[33836] + c[20740] + c[20806] + c[21513] + c[20140] + ']+', 'img');
c.t = c.t.replace(c.m, ''); // /^[萬億兆吉京]+/img, '' //"壹仟京叁仟零伍拾贰吉叁仟伍佰贰拾億肆仟零贰拾萬零伍圆壹角零伍毫"
if (c.t.substring(0, 1) == c[38646])// 零
c.t = c.t.substring(1, c.t.length);
if (c.t.substring(c.t.length - 1, c.t.length) == c[38646])// 零
c.t = c.t.substring(0, c.t.length - 1);
if (c.t.substring(c.t.length - 1, c.t.length) == c[22278])// 圆
c.t = c.t + c[25972]; // "整"
if (this >= 0)
return c.t;

return c[36000] + c.t; // 负 負
};

Number.prototype.toRmb = function ()
{
return this.toRmbString();
};

Number.prototype.rmb = function ()
{
return this.toRmbString();
};

})(null);

//将数字转换为会计可用的人民币大写格式。

JS 人民币大写的更多相关文章

  1. js 将数字转换成人民币大写的方法

    //将数字转换成人民币大写的方法 var digitUppercase = function (n) { var fraction = ['角', '分']; var digit = [ '零', ' ...

  2. 返回人民币大写方式(num2rmb)

    CREATE OR REPLACE FUNCTION num2rmb(Pi_MONEY NVARCHAR2) RETURN NVARCHAR2 IS -- PURPOSE :返回人民币大写方式 v_N ...

  3. FastReport调用Delphi中的人民币大写转换自定义函数

    FastReport调用Delphi中的人民币大写转换自定义函数   FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje ...

  4. sql 数字转人民币大写函数(两种方法)

    ,)) returns @rmb table( 亿 ) ,仟万 ) ,佰万 ) ,拾万 ) ,万 ) ,仟 ) ,佰 ) ,拾 ) ,元 ) ,角 ) ,分 )) as begin insert in ...

  5. Java实现人民币大写精讲

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...

  6. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写     示例.   数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参 ...

  7. Java实现人民币大写代码解析

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...

  8. NET 人民币大写

    /***** HongShijin** Me@HongShijin.com** 2009-3-15 10:13:00.00000** text/C#***/ /// <summary> / ...

  9. 数字转人民币大写(SQL SERVER)

    --数字转人民币大写NumToRMB ---新建方法create  FUNCTION dbo.NumToRMB (@num numeric(14,5))   RETURNS varchar(100) ...

随机推荐

  1. android 网络状态判断【转】

    import java.net.InetAddress; import android.app.Activity;import android.content.Context;import andro ...

  2. BFS+状态压缩 HDU1429

    胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. Java面试题之Struts优缺点

    优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 2.有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率 3. 页面导航 使系统的脉 ...

  4. C#的Split用法

    1.用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray= ...

  5. TCP协议三次握手过程分析

    TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...

  6. SharePoint解决方案由VS2010升级到VS2013部署页面报错

    “/”应用程序中的服务器错误.----------------------------------------文件“/_CONTROLTEMPLATES/....../XXXUserControl.a ...

  7. android文件和图片的处理工具类(一)

    package com.gzcivil.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileO ...

  8. Oracle错误ORA-03113: end-of-file on communication channel处理办法

    oracle不能启动了,报错ORA-03113: end-of-file on communication channel (通信通道的文件结尾) 解决办法: SQL> startup ORAC ...

  9. boost json生成和解析用法

    json c++库还是有很多的,因为工作上经常使用boost,这里选用boost的json,记录下用法. 举个栗子: 如果我们要生成如下格式的json: { "name":&quo ...

  10. 解决SVN:could not start external diff program的问题。

    今天装完SVN之后,用来查看文件不同老是出现could not start external diff program,网上找了很多资料也没找到自己想要的,无意中中右键 Settings看到有个Dif ...