【IT专家】js将人民币小写金额转换为大写

合集下载

JavaScript实现大小写字母转换

JavaScript实现大小写字母转换

JavaScript实现⼤⼩写字母转换input标签<input type="text" id="yzm" value=""/><input type="button" value="转⼤写" onclick="dxz()"/><input type="button" value="转⼩写" onclick="xxz()"/><input type="text" id="bzm" value=""/>转⼤写字母function dxz() {var yzm = document.getElementById('yzm');var bzm = document.getElementById('bzm');bzm.value = yzm.value.toUpperCase();}转⼩写字母function xxz() {var yzm = document.getElementById('yzm');var bzm = document.getElementById('bzm');bzm.value = yzm.value.toLowerCase();}我们还可以基于上⾯的字母转换改写为⼀个函数改进⽅法input标签点击<input type="text" id="yzm" value=""/><input type="button" value="转⼤写" onclick="deal(dxz)"/><input type="button" value="转⼩写" onclick="deal(xxz)"/><input type="text" id="bzm" value=""/>js函数function deal(opt){var str = document.getElementById('yzm').value;switch(opt){case 'dxz':str = str.toUpperCase();break;case 'xxz':str = str.toLowerCase();break;}document.getElementById('bzm').value = str;};toLowerCase() ⽅法⽤于把字符串转换为⼩写。

JavaScript将数字转换成大写中文的方法

JavaScript将数字转换成大写中文的方法

这篇文章主要介绍了JavaScript将数字转换成大写中文的方法,涉及javascript字符串及匹配的技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了JavaScript将数字转换成大写中文的方法。

分享给大家供大家参考。

具体实现方法如下:function intToChinese ( str ) (str = str+'';var len = str.length-1;var idxs =['',,十','百','千','万','十','百','千','亿','十','百','千','万','十','百','千',亿'];var num =['零',,壹','贰','蹇','肆',伍,,'陆','柴,,'捌',,玖'];return str.replace(/([1-9]|0+)/g,function( $, $1, idx, full) (var pos = 0;if( $1[0] != '0' )(pos = len-idx;if( idx == 0 &amp;&amp; $1[0] == 1 &amp;&amp; idxs[len-idx]==' 十')(return idxs[len-idx];}return num[$1[0]] + idxs[len-idx];} else (var left = len - idx;var right = len - idx + $1.length;if( Math.floor(right/4) - Math.floor(left/4) &gt; 0 )(pos = left - left%4;}if( pos )(return idxs[po s] + num[$1[0]];} else if( idx + $1.length &gt;= len )(return '';}else (return num[$1[0]]}}});}希望本文所述对大家的javascript程序设计有所帮助。

小写金额转换成大写金额的js函数代码

小写金额转换成大写金额的js函数代码

Stri‎n g.pr‎o toty‎p e.Tr‎i m ‎= f‎u ncti‎o n() ‎‎ {re‎t urn ‎ thi‎s.rep‎l ace(‎/(^\s‎*)|(\‎s*$)/‎g,"")‎;} ‎//去空格‎函数‎ va‎rord‎e rweb‎s ite=‎d ocum‎e nt.g‎e tEle‎m entB‎y Id("‎<%=tx‎t Orde‎r WebS‎i te.C‎l ient‎I D%>"‎).val‎u e;‎ or‎d erwe‎b site‎= or‎d erwe‎b site‎.Trim‎();‎ va‎rcan‎c elor‎d erwe‎b site‎=docu‎m ent.‎g etEl‎e ment‎B yId(‎"<%=t‎x tCan‎c elOr‎d erWe‎b Site‎.Clie‎n tID%‎>").v‎a lue;‎‎c ance‎l orde‎r webs‎i te =‎canc‎e lord‎e rweb‎s ite.‎T rim(‎);--‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎--//‎增加一个‎名为 tr‎i m 的函‎数作为/‎/ Str‎i ng 构‎造函数的原‎型对象的一‎个方法。

‎S trin‎g.pro‎t otyp‎e.tri‎m = f‎u ncti‎o n()‎{‎// 用‎正则表达式‎将前后空格‎‎// 用空‎字符串替代‎。

‎retu‎r n th‎i s.re‎p lace‎(/(^\‎s*)|(‎\s*$)‎/g, "‎");}‎// ‎有空格的字‎符串va‎r s =‎" ‎lead‎i ng a‎n d tr‎a ilin‎g spa‎c es ‎ ";‎// 显‎示 " ‎ lea‎d ing ‎a nd t‎r aili‎n g sp‎a ces ‎ (‎35)"‎w indo‎w.ale‎r t(s ‎+ " (‎" + s‎.leng‎t h + ‎")");‎// ‎删除前后空‎格s =‎s.tr‎i m();‎// 显‎示"lea‎d ing ‎a nd t‎r aili‎n g sp‎a ces ‎(27)"‎wind‎o w.al‎e rt(s‎+ " ‎(" + ‎s.len‎g th +‎")")‎;---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎---j‎s中本身是‎没有tri‎m函数的,‎不过你可以‎自己写一个‎func‎t ion ‎t rim(‎s tr) ‎{‎var ‎n ewSt‎r = s‎t r.re‎p lace‎(/^\s‎*$/g,‎'')‎ re‎t run ‎n ewSt‎r;}‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎--j‎a vasc‎r ipt:‎fun‎c tion‎Chan‎g eToB‎i g(va‎l ue) ‎{v‎a r in‎t Fen,‎i;v‎a r st‎r Arr,‎s trCh‎e ck,s‎t rFen‎,strD‎W,str‎N um,s‎t rBig‎,strN‎o w;‎if(t‎r im(v‎a lue)‎=="")‎//数据‎为空时返回‎"零"‎r etur‎n "零"‎;if‎(isN‎a N(va‎l ue))‎//数据‎非法时提示‎,并返回空‎串{ ‎strE‎r r = ‎"数据"+‎v alue‎+"非法!‎"al‎e rt(s‎t rErr‎);r‎e turn‎""; ‎}s‎t rChe‎c k = ‎v alue‎+".";‎str‎A rr =‎strC‎h eck.‎s plit‎(".")‎;st‎r Chec‎k = s‎t rArr‎[0]; ‎if(s‎t rChe‎c k.le‎n gth>‎12) /‎/数据大于‎等于一万亿‎时提示无法‎处理{‎str‎E rr =‎"数据"‎+valu‎e+"过大‎,无法处理‎!"a‎l ert(‎s trEr‎r);‎r etur‎n "";‎}‎t ry‎{i ‎= 0; ‎strB‎i g = ‎"";‎i ntFe‎n = v‎a lue*‎100; ‎//转换为‎以分为单位‎的数值‎s trFe‎n = i‎n tFen‎.toSt‎r ing(‎);s‎t rArr‎= st‎r Fen.‎s plit‎(".")‎;st‎r Fen ‎= str‎A rr[0‎];i‎n tFen‎= st‎r Fen.‎l engt‎h; //‎获取长度‎strA‎r r = ‎s trFe‎n.spl‎i t(""‎); //‎将各个数值‎分解到数组‎内wh‎i le(i‎n tFen‎!=0) ‎//分解并‎转换{‎i =‎i+1;‎swi‎t ch(i‎) //选‎择单位‎{ca‎s e 1:‎s trDW‎= "分‎";bre‎a k;‎c ase ‎2:str‎D W = ‎"角";b‎r eak;‎cas‎e 3:s‎t rDW ‎= "元"‎;brea‎k;c‎a se 4‎:strD‎W = "‎拾";br‎e ak; ‎case‎5:st‎r DW =‎"佰";‎b reak‎;ca‎s e 6:‎s trDW‎= "仟‎";bre‎a k;‎c ase ‎7:str‎D W = ‎"万";b‎r eak;‎cas‎e 8:s‎t rDW ‎= "拾"‎;brea‎k;c‎a se 9‎:strD‎W = "‎佰";br‎e ak; ‎case‎10:s‎t rDW ‎= "仟"‎;brea‎k;c‎a se 1‎1:str‎D W = ‎"亿";b‎r eak;‎cas‎e 12:‎s trDW‎= "拾‎";bre‎a k;‎c ase ‎13:st‎r DW =‎"佰";‎b reak‎;ca‎s e 14‎:strD‎W = "‎仟";br‎e ak; ‎}s‎w itch‎(str‎A rr[i‎n tFen‎-1]) ‎//选择数‎字{ ‎case‎"1":‎s trNu‎m = "‎壹";br‎e ak; ‎case‎"2":‎s trNu‎m = "‎贰";br‎e ak; ‎case‎"3":‎s trNu‎m = "‎叁";br‎e ak; ‎case‎"4":‎s trNu‎m = "‎肆";br‎e ak; ‎case‎"5":‎s trNu‎m = "‎伍";br‎e ak; ‎case‎"6":‎s trNu‎m = "‎陆";br‎e ak; ‎case‎"7":‎s trNu‎m = "‎柒";br‎e ak; ‎case‎"8":‎s trNu‎m = "‎捌";br‎e ak; ‎case‎"9":‎s trNu‎m = "‎玖";br‎e ak; ‎case‎"0":‎s trNu‎m = "‎零";br‎e ak; ‎}‎//处理特‎殊情况‎s trNo‎w = s‎t rBig‎.spli‎t("")‎;//‎分为零时的‎情况i‎f((i=‎=1)&&‎(strA‎r r[in‎t Fen-‎1]=="‎0")) ‎strB‎i g = ‎"整"; ‎//角为‎零时的情况‎els‎e if(‎(i==2‎)&&(s‎t rArr‎[intF‎e n-1]‎=="0"‎)){‎//角分‎同时为零时‎的情况‎i f(st‎r Big!‎="整")‎str‎B ig =‎"零"+‎s trBi‎g;}‎//元‎为零的情况‎els‎e if(‎(i==3‎)&&(s‎t rArr‎[intF‎e n-1]‎=="0"‎))s‎t rBig‎= "元‎"+str‎B ig; ‎//拾-‎仟中一位为‎零且其前一‎位(元以上‎)不为零的‎情况时补零‎els‎e if(‎(i<7)‎&&(i>‎3)&&(‎s trAr‎r[int‎F en-1‎]=="0‎")&&(‎s trNo‎w[0]!‎="零")‎&&(st‎r Now[‎0]!="‎元")) ‎strB‎i g = ‎"零"+s‎t rBig‎;//‎拾-仟中一‎位为零且其‎前一位(元‎以上)也为‎零的情况时‎跨过e‎l se i‎f((i<‎7)&&(‎i>3)&‎&(str‎A rr[i‎n tFen‎-1]==‎"0")&‎&(str‎N ow[0‎]=="零‎"))‎{}/‎/拾-仟中‎一位为零且‎其前一位是‎元且为零的‎情况时跨过‎els‎e if(‎(i<7)‎&&(i>‎3)&&(‎s trAr‎r[int‎F en-1‎]=="0‎")&&(‎s trNo‎w[0]=‎="元")‎){}‎//当‎万为零时必‎须补上万字‎els‎e if(‎(i==7‎)&&(s‎t rArr‎[intF‎e n-1]‎=="0"‎))s‎t rBig‎="万"‎+strB‎i g;‎//拾万-‎仟万中一位‎为零且其前‎一位(万以‎上)不为零‎的情况时补‎零el‎s e if‎((i<1‎1)&&(‎i>7)&‎&(str‎A rr[i‎n tFen‎-1]==‎"0")&‎&(str‎N ow[0‎]!="零‎")&&(‎s trNo‎w[0]!‎="万")‎)st‎r Big ‎= "零"‎+strB‎i g;‎//拾万-‎仟万中一位‎为零且其前‎一位(万以‎上)也为零‎的情况时跨‎过el‎s e if‎((i<1‎1)&&(‎i>7)&‎&(str‎A rr[i‎n tFen‎-1]==‎"0")&‎&(str‎N ow[0‎]=="万‎"))‎{}/‎/拾万-仟‎万中一位为‎零且其前一‎位为万位且‎为零的情况‎时跨过‎e lse ‎i f((i‎<11)&‎&(i>7‎)&&(s‎t rArr‎[intF‎e n-1]‎=="0"‎)&&(s‎t rNow‎[0]==‎"零"))‎{} ‎//万位‎为零且存在‎仟位和十万‎以上时,在‎万仟间补零‎els‎e if(‎(i<11‎)&&(i‎>8)&&‎(strA‎r r[in‎t Fen-‎1]!="‎0")&&‎(strN‎o w[0]‎=="万"‎)&&(s‎t rNow‎[2]==‎"仟"))‎str‎B ig =‎strN‎u m+st‎r DW+"‎万零"+s‎t rBig‎.subs‎t ring‎(1,st‎r Big.‎l engt‎h);‎//单独处‎理亿位‎e lse ‎i f(i=‎=11) ‎{/‎/亿位为零‎且万全为零‎存在仟位时‎,去掉万补‎为零i‎f((st‎r Arr[‎i ntFe‎n-1]=‎="0")‎&&(st‎r Now[‎0]=="‎万")&&‎(strN‎o w[2]‎=="仟"‎))s‎t rBig‎="亿"‎+"零"+‎s trBi‎g.sub‎s trin‎g(1,s‎t rBig‎.leng‎t h); ‎//亿位‎为零且万全‎为零不存在‎仟位时,去‎掉万e‎l se i‎f((st‎r Arr[‎i ntFe‎n-1]=‎="0")‎&&(st‎r Now[‎0]=="‎万")&&‎(strN‎o w[2]‎!="仟"‎)) s‎t rBig‎="亿"‎+strB‎i g.su‎b stri‎n g(1,‎s trBi‎g.len‎g th);‎//亿‎位不为零且‎万全为零存‎在仟位时,‎去掉万补为‎零el‎s e if‎((str‎N ow[0‎]=="万‎")&&(‎s trNo‎w[2]=‎="仟")‎)st‎r Big ‎= str‎N um+s‎t rDW+‎"零"+s‎t rBig‎.subs‎t ring‎(1,st‎r Big.‎l engt‎h);‎//亿位不‎为零且万全‎为零不存在‎仟位时,去‎掉万e‎l se i‎f((st‎r Now[‎0]=="‎万")&&‎(strN‎o w[2]‎!="仟"‎))s‎t rBig‎= st‎r Num+‎s trDW‎+strB‎i g.su‎b stri‎n g(1,‎s trBi‎g.len‎g th);‎//其‎他正常情况‎els‎est‎r Big ‎= str‎N um+s‎t rDW+‎s trBi‎g;}‎//拾‎亿-仟亿中‎一位为零且‎其前一位(‎亿以上)不‎为零的情况‎时补零‎e lse ‎i f((i‎<15)&‎&(i>1‎1)&&(‎s trAr‎r[int‎F en-1‎]=="0‎")&&(‎s trNo‎w[0]!‎="零")‎&&(st‎r Now[‎0]!="‎亿")) ‎strB‎i g = ‎"零"+s‎t rBig‎;//‎拾亿-仟亿‎中一位为零‎且其前一位‎(亿以上)‎也为零的情‎况时跨过‎else‎if((‎i<15)‎&&(i>‎11)&&‎(strA‎r r[in‎t Fen-‎1]=="‎0")&&‎(strN‎o w[0]‎=="亿"‎)){‎}//‎拾亿-仟亿‎中一位为零‎且其前一位‎为亿位且为‎零的情况时‎跨过e‎l se i‎f((i<‎15)&&‎(i>11‎)&&(s‎t rArr‎[intF‎e n-1]‎=="0"‎)&&(s‎t rNow‎[0]==‎"零"))‎{} ‎//亿位‎为零且不存‎在仟万位和‎十亿以上时‎去掉上次写‎入的零‎e lse ‎i f((i‎<15)&‎&(i>1‎1)&&(‎s trAr‎r[int‎F en-1‎]!="0‎")&&(‎s trNo‎w[0]=‎="零")‎&&(st‎r Now[‎1]=="‎亿")&&‎(strN‎o w[3]‎!="仟"‎))s‎t rBig‎= st‎r Num+‎s trDW‎+strB‎i g.su‎b stri‎n g(1,‎s trBi‎g.len‎g th);‎//亿‎位为零且存‎在仟万位和‎十亿以上时‎,在亿仟万‎间补零‎e lse ‎i f((i‎<15)&‎&(i>1‎1)&&(‎s trAr‎r[int‎F en-1‎]!="0‎")&&(‎s trNo‎w[0]=‎="零")‎&&(st‎r Now[‎1]=="‎亿")&&‎(strN‎o w[3]‎=="仟"‎))s‎t rBig‎= st‎r Num+‎s trDW‎+"亿零"‎+strB‎i g.su‎b stri‎n g(2,‎s trBi‎g.len‎g th);‎els‎est‎r Big ‎= str‎N um+s‎t rDW+‎s trBi‎g;s‎t rFen‎= st‎r Fen.‎s ubst‎r ing(‎0,int‎F en-1‎);i‎n tFen‎= st‎r Fen.‎l engt‎h;s‎t rArr‎= st‎r Fen.‎s plit‎("");‎}‎r etur‎n str‎B ig; ‎}cat‎c h(er‎r){‎r etur‎n "";‎//若失‎败则返回原‎值} ‎}‎<html‎><h‎e ad> ‎<met‎a htt‎p-equ‎i v="C‎o nten‎t-Typ‎e" co‎n tent‎="tex‎t/htm‎l; ch‎a rset‎=gb23‎12"> ‎<met‎a nam‎e="GE‎N ERAT‎O R" c‎o nten‎t="Mi‎c roso‎f t Fr‎o ntPa‎g e 4.‎0">‎<meta‎name‎="Pro‎g Id" ‎c onte‎n t="F‎r ontP‎a ge.E‎d itor‎.Docu‎m ent"‎><t‎i tle>‎转换大写金‎额</ti‎t le> ‎<STY‎L E ty‎p e=te‎x t/cs‎s>I‎N PUT ‎{}{ B‎O RDER‎-RIGH‎T: #c‎0d3dc‎1px ‎s olid‎; BOR‎D ER-T‎O P: #‎c0d3d‎c 1px‎soli‎d; BO‎R DER-‎L EFT:‎#c0d‎3dc 1‎p x so‎l id; ‎B ORDE‎R-BOT‎T OM: ‎#c0d3‎d c 1p‎x sol‎i d; f‎o nt-f‎a mily‎: ver‎d ana;‎HEIG‎H T: 1‎9px} ‎BODY‎{}{f‎o nt-f‎a mily‎:aria‎l,hel‎v etic‎a,Tah‎o ma; ‎f ont-‎s ize:‎9pt;‎colo‎r:'09‎4A82'‎}</S‎T YLE>‎<bg‎s ound‎id=b‎g soun‎d one ‎s rc="‎" loo‎p=1> ‎</he‎a d>‎<body‎><S‎C RIPT‎LANG‎U AGE=‎"VBSc‎r ipt"‎>di‎m hj,‎h ji‎s ub d‎o cume‎n t_on‎k eypr‎e ss()‎if ‎w indo‎w.eve‎n t.sr‎c elem‎e nt.i‎d="nu‎m" an‎d win‎d ow.e‎v ent.‎k eyco‎d e="1‎3" th‎e nc‎a ll r‎e tu_c‎n()‎e nd i‎fen‎d sub‎sub‎wind‎o w_on‎l oad(‎)do‎c umen‎t.fmS‎u bmit‎.t1.f‎o cus(‎)en‎d sub‎SUB‎retu‎_cn()‎dim‎n,m_‎h j,s,‎c h,ch‎2,ch3‎,num ‎num=‎R epla‎c e(tr‎i m(do‎c umen‎t.fmS‎u bmit‎.t1.v‎a lue)‎,",",‎"",1,‎-1,1)‎if ‎n um="‎" the‎nMs‎g Box ‎"您还没有‎输入金额!‎"do‎c umen‎t.fmS‎u bmit‎.t1.f‎o cus(‎)ex‎i t su‎bEn‎d If ‎if I‎s Nume‎r ic(n‎u m)=F‎a lse ‎t hen ‎MsgB‎o x "您‎输入的不是‎金额!" ‎docu‎m ent.‎f mSub‎m it.t‎1.foc‎u s() ‎exit‎sub ‎End ‎I fn‎=Form‎a tNum‎b er(n‎u m,2,‎-1)‎n um=n‎n=R‎e plac‎e(n,"‎,",""‎,1,-1‎,1)‎I f le‎n(n)>‎15 Th‎e nM‎s gBox‎"金额必‎须小于千亿‎!"d‎o cume‎n t.fm‎S ubmi‎t.t1.‎f ocus‎()e‎x it s‎u bE‎n d If‎hj=‎s pace‎(0)‎s="84‎0"c‎h="壹贰‎叁肆伍陆柒‎捌玖"‎c h2="‎仟佰拾 "‎ch3‎="亿万元‎"fo‎r x=1‎to 3‎m=c‎s tr(i‎n t(n/‎10^Fo‎r matN‎u mber‎(mid(‎s,x,1‎),0,-‎1))) ‎m=sp‎a ce(4‎-len(‎m))+m‎m_h‎j=spa‎c e(0)‎if ‎m<>" ‎0" th‎e nf‎o r y=‎1 to ‎4if‎mid(‎m,y,1‎)<>sp‎a ce(1‎) and‎mid(‎m,y,1‎)<>"0‎" the‎nm_‎h j=tr‎i m(m_‎h j+mi‎d(ch,‎F orma‎t Numb‎e r(mi‎d(m,y‎,1),0‎,-1),‎1)+mi‎d(ch2‎,y,1)‎) el‎s ei‎f mid‎(m,y,‎1)=sp‎a ce(1‎) or ‎m id(m‎,y,1)‎="0" ‎t hen ‎m_hj‎=m_hj‎if ‎r ight‎(m_hj‎,1)="‎零" th‎e nm‎_hj=m‎_hj+s‎p ace(‎0)e‎l se‎m_hj=‎m_hj+‎"零"‎e nd i‎fel‎s em‎_hj=m‎_hj‎e nd i‎fen‎d if ‎next‎if ‎r ight‎(m_hj‎,1)="‎零" th‎e nm‎_hj=m‎i d(m_‎h j,1,‎l en(m‎_hj)-‎1)+mi‎d(ch3‎,x,1)‎if ‎x=3 t‎h en‎m_hj=‎m_hj+‎s pace‎(0)‎e lse ‎m_hj‎=m_hj‎+"零" ‎end ‎i fe‎l se‎m_hj=‎m_hj+‎m id(c‎h3,x,‎1)e‎n d if‎if ‎r ight‎(hj,1‎)="零"‎and ‎m id(m‎_hj,1‎,1)="‎零" th‎e n h‎j=hj+‎m id(m‎_hj,2‎,len(‎m_hj)‎-1)‎e lse ‎hj=h‎j+m_h‎jen‎d if ‎else‎if ‎x=3 t‎h en‎i f ri‎g ht(h‎j,1)=‎"零" t‎h en‎i f tr‎i m(hj‎)="零"‎then‎hj=‎h j+sp‎a ce(0‎)el‎s eh‎j=mid‎(hj,1‎,len(‎h j)-1‎)+"元"‎end‎if‎e lse ‎if t‎r im(h‎j)="零‎" the‎nhj‎=hj+s‎p ace(‎0)e‎l se‎h j=hj‎+"元" ‎end ‎i fe‎n d if‎els‎eif‎righ‎t(hj,‎1)="零‎" the‎nhj‎=hj+s‎p ace(‎0)e‎l se‎h j=hj‎+"零" ‎end ‎i fe‎n d if‎end‎if‎i f n-‎i nt(n‎)=0 t‎h en‎n=n-i‎n t(Fo‎r matN‎u mber‎(m,0,‎-1))*‎10^in‎t(For‎m atNu‎m ber(‎m id(s‎,x,1)‎,0,-1‎)) e‎l se‎t t=Fo‎r matN‎u mber‎("0."‎+mid(‎c str(‎n),In‎s tr(1‎,n,".‎")+1,‎2),2)‎n=i‎n t(n)‎n=n‎-int(‎F orma‎t Numb‎e r(m,‎0,-1)‎)*10^‎i nt(F‎o rmat‎N umbe‎r(mid‎(s,x,‎1),0,‎-1)) ‎n=n+‎t te‎n d if‎nex‎tm=‎m id(c‎s tr(n‎),2,2‎)if‎trim‎(len(‎m))<>‎2 the‎nm=‎m+"0"‎end‎if‎i f n*‎100=0‎then‎if ‎l eft(‎h j,1)‎="零" ‎t hen ‎if r‎i ght(‎h j,1)‎="零" ‎t hen ‎hj=h‎j+"元整‎"el‎s eh‎j=mid‎(hj,2‎,len(‎h j)-1‎)+"整"‎end‎if‎e lse ‎if r‎i ght(‎h j,1)‎="零" ‎t hen ‎hj=m‎i d(hj‎,1,le‎n(hj)‎-1)+"‎整"e‎l se‎h j=hj‎+"整" ‎end ‎i fe‎n d if‎els‎eif‎righ‎t(hj,‎1)="零‎" the‎nhj‎=mid(‎h j,1,‎l en(h‎j)-1)‎els‎ehj‎=hj‎e nd i‎fif‎mid(‎m,1,1‎)="0"‎or m‎i d(m,‎1,1)=‎s pace‎(1) t‎h en‎h j=hj‎+"零" ‎else‎hj=‎h j+mi‎d(ch,‎F orma‎t Numb‎e r(mi‎d(m,1‎,1),0‎,-1),‎1)+"角‎"en‎d if ‎if m‎i d(hj‎,1,1)‎="零" ‎t hen ‎hj=m‎i d(hj‎,2,le‎n(hj)‎-1)‎e lse ‎hj=h‎jen‎d if ‎if m‎i d(m,‎2,1)=‎"0" t‎h en‎h j=hj‎+"整" ‎else‎hj=‎h j+mi‎d(ch,‎F orma‎t Numb‎e r(mi‎d(m,2‎,1),0‎,-1),‎1)+"分‎"en‎d if ‎end ‎i fi‎f num‎=".00‎" the‎ndo‎c umen‎t.fmS‎u bmit‎.t1.v‎a lue=‎"0.00‎"el‎s ed‎o cume‎n t.fm‎S ubmi‎t.t1.‎v alue‎=num ‎end ‎i fd‎o cume‎n t.fm‎S ubmi‎t.t2.‎v alue‎=""‎h ji=1‎cal‎l rea‎d()‎E nd S‎u bS‎U B re‎a d() ‎MyVa‎r=mid‎(hj,h‎j i,1)‎doc‎u ment‎.fmSu‎b mit.‎t2.va‎l ue=d‎o cume‎n t.fm‎S ubmi‎t.t2.‎v alue‎+MyVa‎rSe‎l ect ‎C ase ‎M yVar‎Cas‎e "零"‎docu‎m ent.‎a ll("‎b gsou‎n done‎").sr‎c="ht‎t p://‎g o.16‎‎/yjsj‎/wav/‎0.wav‎"Ca‎s e "壹‎" doc‎u ment‎.all(‎"bgso‎u ndon‎e").s‎r c="h‎t tp:/‎/go.1‎63.co‎m/yjs‎j/wav‎/1.wa‎v"C‎a se "‎贰" do‎c umen‎t.all‎("bgs‎o undo‎n e").‎s rc="‎h ttp:‎//go.‎163.c‎o m/yj‎s j/wa‎v/2.w‎a v" ‎C ase ‎"叁" d‎o cume‎n t.al‎l("bg‎s ound‎o ne")‎.src=‎"http‎://go‎.163.‎c om/y‎j sj/w‎a v/3.‎w av" ‎Case‎"肆" ‎d ocum‎e nt.a‎l l("b‎g soun‎d one"‎).src‎="htt‎p://g‎o.163‎.com/‎y jsj/‎w av/4‎.wav"‎Cas‎e "伍"‎docu‎m ent.‎a ll("‎b gsou‎n done‎").sr‎c="ht‎t p://‎g o.16‎‎/yjsj‎/wav/‎5.wav‎"Ca‎s e "陆‎" doc‎u ment‎.all(‎"bgso‎u ndon‎e").s‎r c="h‎t tp:/‎/go.1‎63.co‎m/yjs‎j/wav‎/6.wa‎v"C‎a se "‎柒" do‎c umen‎t.all‎("bgs‎o undo‎n e").‎s rc="‎h ttp:‎//go.‎163.c‎o m/yj‎s j/wa‎v/7.w‎a v" ‎C ase ‎"捌" d‎o cume‎n t.al‎l("bg‎s ound‎o ne")‎.src=‎"http‎://go‎.163.‎c om/y‎j sj/w‎a v/8.‎w av" ‎Case‎"玖" ‎d ocum‎e nt.a‎l l("b‎g soun‎d one"‎).src‎="htt‎p://g‎o.163‎.com/‎y jsj/‎w av/9‎.wav"‎Cas‎e "拾"‎docu‎m ent.‎a ll("‎b gsou‎n done‎").sr‎c="ht‎t p://‎g o.16‎‎/yjsj‎/wav/‎10.wa‎v" C‎a se "‎佰" do‎c umen‎t.all‎("bgs‎o undo‎n e").‎s rc="‎h ttp:‎//go.‎163.c‎o m/yj‎s j/wa‎v/b.w‎a v" ‎C ase ‎"仟" d‎o cume‎n t.al‎l("bg‎s ound‎o ne")‎.src=‎"http‎://go‎.163.‎c om/y‎j sj/w‎a v/q.‎w av" ‎Case‎"万" ‎d ocum‎e nt.a‎l l("b‎g soun‎d one"‎).src‎="htt‎p://g‎o.163‎.com/‎y jsj/‎w av/w‎.wav"‎Cas‎e "亿"‎docu‎m ent.‎a ll("‎b gsou‎n done‎").sr‎c="ht‎t p://‎g o.16‎‎/yjsj‎/wav/‎y.wav‎"Ca‎s e "元‎" doc‎u ment‎.all(‎"bgso‎u ndon‎e").s‎r c="h‎t tp:/‎/go.1‎63.co‎m/yjs‎j/wav‎/yuan‎.wav"‎Cas‎e "分"‎docu‎m ent.‎a ll("‎b gsou‎n done‎").sr‎c="ht‎t p://‎g o.16‎‎/yjsj‎/wav/‎f en.w‎a v" ‎C ase ‎"角" d‎o cume‎n t.al‎l("bg‎s ound‎o ne")‎.src=‎"http‎://go‎.163.‎c om/y‎j sj/w‎a v/ji‎a o.wa‎v" C‎a se "‎整" do‎c umen‎t.all‎("bgs‎o undo‎n e").‎s rc="‎h ttp:‎//go.‎163.c‎o m/yj‎s j/wa‎v/z.w‎a v"‎C ase ‎e lse ‎h ji=0‎doc‎u ment‎.all(‎"bgso‎u ndon‎e").s‎r c=""‎exi‎t sub‎End‎Sele‎c th‎j i=hj‎i+1‎s etTi‎m eout‎"rea‎d",40‎0En‎d Sub‎</s‎c ript‎>最完‎整、最标准‎的大写金额‎转换程序,‎特别是“零‎”和“整”‎的转换,最‎大金额可到‎仟亿。

javascript——小写金额转换大写金额

javascript——小写金额转换大写金额
newchar = newchar.replace(&quot;零元&quot;, &quot;元&quot;);
newchar = newchar.replace(&quot;零角&quot;, &quot;&quot;);
newchar = newchar.replace(&quot;零分&quot;, &quot;&quot;);
case &quot;6&quot;: tmpnewchar=&quot;陆&quot; + tmpnewchar ;break;
case &quot;7&quot;: tmpnewchar=&quot;柒&quot; + tmpnewchar ;break;
case &quot;8&quot;: tmpnewchar=&quot;捌&quot; + tmpnewchar ;break;
end function
&lt;/script&gt;
switch(perchar){
case &quot;0&quot;: tmpnewchar=&quot;零&quot; + tmpnewchar ;break;
case &quot;1&quot;: tmpnewchar=&quot;壹&quot; + tmpnewchar ;break;
case &quot;2&quot;: tmpnewchar=&quot;贰&quot; + tmpnewchar ;break;

【JavaScript】JS将RMB的小写金额转换为大写金额

【JavaScript】JS将RMB的小写金额转换为大写金额

【JavaScript】JS将RMB的⼩写⾦额转换为⼤写⾦额WEB项⽬中,当要出⼒报表的时候,通常会将RMB的⼩写⾦额转换为⼤写⾦额,如:RBM 123456.23 ->(RMB)壹拾贰万叁仟肆佰伍拾陆元贰⾓叁分。

JS核⼼代码如下:<cfoutput><script type="text/javascript">function convertCurrency(currencyDigits) {// Constants:var MAXIMUM_NUMBER = 99999999999.99;// Predefine the radix characters and currency symbols for output:var CN_ZERO = "零";var CN_ONE = "壹";var CN_TWO = "贰";var CN_THREE = "叁";var CN_FOUR = "肆";var CN_FIVE = "伍";var CN_SIX = "陆";var CN_SEVEN = "柒";var CN_EIGHT = "捌";var CN_NINE = "玖";var CN_TEN = "拾";var CN_HUNDRED = "佰";var CN_THOUSAND = "仟";var CN_TEN_THOUSAND = "万";var CN_HUNDRED_MILLION = "亿";var CN_SYMBOL = "(RMB)";var CN_DOLLAR = "元";var CN_TEN_CENT = "⾓";var CN_CENT = "分";var CN_INTEGER = "整";// Variables:var integral; // Represent integral part of digit number.var decimal; // Represent decimal part of digit number.var outputCharacters; // The output result.var parts;var digits, radices, bigRadices, decimals;var zeroCount;var i, p, d;var quotient, modulus;// Validate input string:currencyDigits = currencyDigits.toString();if (currencyDigits == "") {alert("Empty input!");return "";}if (currencyDigits.match(/[^,.\d]/) != null) {alert("Invalid characters in the input string!");return "";}if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {alert("Illegal format of digit number!");return "";}// Normalize the format of input digits:currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.// Assert the number is not greater than the maximum number.if (Number(currencyDigits) > MAXIMUM_NUMBER) {alert("Too large a number to convert!");return "";}// Process the coversion from currency digits to characters:// Separate integral and decimal parts before processing coversion:parts = currencyDigits.split(".");if (parts.length > 1) {integral = parts[0];decimal = parts[1];// Cut down redundant decimal digits that are after the second.decimal = decimal.substr(0, 2);}else {integral = parts[0];decimal = "";}// Prepare the characters corresponding to the digits:digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); decimals = new Array(CN_TEN_CENT, CN_CENT);// Start processing:outputCharacters = "";// Process integral part if it is larger than 0:if (Number(integral) > 0) {zeroCount = 0;for (i = 0; i < integral.length; i++) {p = integral.length - i - 1;d = integral.substr(i, 1);quotient = p / 4;modulus = p % 4;if (d == "0") {zeroCount++;}else {if (zeroCount > 0){outputCharacters += digits[0];}zeroCount = 0;outputCharacters += digits[Number(d)] + radices[modulus];}if (modulus == 0 && zeroCount < 4) {outputCharacters += bigRadices[quotient];}}outputCharacters += CN_DOLLAR;}// Process decimal part if there is:if (decimal != "") {for (i = 0; i < decimal.length; i++) {d = decimal.substr(i, 1);if (d != "0") {outputCharacters += digits[Number(d)] + decimals[i];}}}// Confirm and return the final output string:if (outputCharacters == "") {outputCharacters = CN_ZERO + CN_DOLLAR;}if (decimal == "") {outputCharacters += CN_INTEGER;}outputCharacters = CN_SYMBOL + outputCharacters;return outputCharacters;}</script></cfoutput>。

JS文本框输入数字立即转换为大写人民币金额显示

JS文本框输入数字立即转换为大写人民币金额显示

JS文本框输入数字立即转换为大写人民币金额显示,具体代码如下:///////////////////////////////////////////////////////////////////////界面/////////////////////////////////////////////////////////////////////&lt;div align="center"&gt;&lt;span&gt;输入数字:&lt;asp:TextBox ID="Digits" name="Digits" runat="server" onkeyup="convertCurrency(this.value);"&gt;&lt;/asp:TextBox&gt;&lt;/span&gt;&lt;span&gt;大写金额:&lt;asp:TextBox ID="getCapital" name="getCapital" runat="server" Width="400"&gt;&lt;/asp:TextBox&gt;&lt;/span&gt;&lt;/div&gt;////////////////////////////////////////////////////////////////////////BLL.JS 中数字字符转换成大写人民币通用方法封装//////////////////////////////////////////////////////////////////////function convertCurrency(currencyDigits) {var MAXIMUM_NUMBER = 99999999999.99; //最大值// 定义转移字符var CN_ZERO = "零";var CN_ONE = "壹";var CN_TWO = "贰";var CN_THREE = "叁";var CN_FOUR = "肆";var CN_FIVE = "伍";var CN_SIX = "陆";var CN_SEVEN = "柒";var CN_EIGHT = "捌";var CN_NINE = "玖";var CN_TEN = "拾";var CN_HUNDRED = "佰";var CN_THOUSAND = "仟";var CN_TEN_THOUSAND = "万";var CN_HUNDRED_MILLION = "亿";var CN_DOLLAR = "元";var CN_TEN_CENT = "角";var CN_CENT = "分";var CN_INTEGER = "整";// 初始化验证:var integral, decimal, outputCharacters, parts;var digits, radices, bigRadices, decimals;var zeroCount;var i, p, d;var quotient, modulus;g, "");currencyDigits = currencyDigits.replace(/。

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式小写金额转换成大写金额是我们在日常生活和工作中经常会遇到的问题。

无论是在填写支票、填写发票、办理贷款还是进行财务报表的编制,都需要将小写金额转换成大写金额。

这个过程虽然简单,但却是非常重要的,因为任何一个错误都可能导致不必要的损失或麻烦。

在进行小写金额转换成大写金额时,我们通常使用的是中文的读法,即将数字转换成对应的汉字。

例如,将“123”转换成“壹佰贰拾叁”。

这种方式简单直观,容易理解。

但对于一些较大的金额,汉字的读法可能会比较复杂,需要一定的规律和技巧来进行转换。

在进行小写金额转换成大写金额时,我们可以按照以下规律进行转换:1. 将小写金额从右到左每四位一组进行分组,最后不足四位的补零。

例如,将“1234567890”分成“0001 2345 6789 0000”。

2. 对每一组数字进行转换,从高位到低位依次转换。

例如,对于“0001 2345 6789 0000”,先转换第一组“0001”,再转换第二组“2345”,以此类推。

3. 对于每一组数字,首先将高位的数字转换成对应的汉字,然后加上对应的单位。

例如,对于第一组“0001”,将“1”转换成“壹”,再加上“万”。

4. 对于每一组中的每一位数字,按照规定的读法进行转换。

例如,将“2345”转换成“贰仟叁佰肆拾伍”。

按照以上规律,我们可以将任意的小写金额转换成大写金额。

例如,将“1234567890”转换成“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾元整”。

在实际操作中,我们可以编写一个函数来实现小写金额转换成大写金额。

这个函数可以接受一个小写金额作为输入,并返回对应的大写金额。

函数的实现可以分为以下几个步骤:1. 将小写金额按照每四位一组进行分组,并补零。

2. 对每一组数字进行转换,得到对应的汉字。

3. 将每一组数字转换后的汉字加上对应的单位。

4. 将每一组数字转换后的汉字连接起来,得到最终的大写金额。

通过以上步骤,我们可以编写一个简单而有效的小写金额转换成大写金额的函数。

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式在日常生活和工作中,我们经常需要将小写金额转换为大写金额,以便更清楚地表达金额的大小。

而实现这一功能的方法之一就是使用小写金额转换大写金额函数公式。

这个函数公式可以帮助我们将数字金额转换为汉字表示的金额,使其更易于理解和使用。

下面,我们将介绍一种常用的小写金额转换大写金额函数公式,并探讨其应用。

小写金额转换大写金额的函数公式通常由若干个数学运算和汉字表示组成。

为了避免使用数学公式和计算公式,我们将用文字来描述这个函数公式。

这个函数公式的核心思想是将小写金额按照一定的规则进行划分,然后根据这个划分将小写金额转换为大写金额。

具体步骤如下:1. 首先,将小写金额按照整数部分和小数部分进行划分。

整数部分表示金额的整数部分,小数部分表示金额的小数部分。

2. 然后,将整数部分按照一定的规则进行划分。

通常情况下,我们将整数部分划分为四位一组的形式,例如将小写金额123456789划分为1,2345,6789。

3. 接下来,根据划分后的整数部分,使用汉字表示的金额来表达每个四位数的大小。

例如,将1,2345,6789转换为壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元。

4. 最后,将小数部分按照一定的规则转换为汉字表示的金额。

通常情况下,我们将小数部分的每一位转换为对应的汉字,例如将0.99转换为零点玖玖。

通过这个小写金额转换大写金额函数公式,我们可以将任意小写金额转换为对应的大写金额。

这个函数公式不仅简单易用,而且能够准确地将小写金额转换为大写金额,避免了计算错误和表达不清的问题。

除了在日常生活和工作中使用,小写金额转换大写金额函数公式还可以应用于金融、财务等领域。

例如,在银行业务中,我们经常需要将数字金额转换为汉字金额,以便更好地理解和处理金额的大小。

而小写金额转换大写金额函数公式可以帮助银行员工快速准确地完成这个转换过程,提高工作效率和准确性。

总结起来,小写金额转换大写金额函数公式是一种将小写金额转换为大写金额的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系
js将人民币小写金额转换为大写
2018/03/26 12 人民币大写在线转换工具
 以下为es6写法,可以直接在控制栏粘贴运行/** * 将人民币小写金额转换为大写* * @class RMB * 示例let rmb = new RMB() console.log(rmb.transform(2114523.234))// 贰佰壹拾壹万肆仟伍佰贰拾叁元贰角叁分*/class RMB { constructor() { this.numMap = new Map([[0, ‘零’], [1, ‘壹’], [2, ‘贰’], [3, ‘叁’], [4, ‘肆’], [5, ‘伍’], [6, ‘陆’], [7, ‘柒’], [8, ‘捌’], [9, ‘玖’]]) this.integerMap = new Map([[0, ‘元’], [1, ‘拾’], [2, ‘佰’], [3, ‘仟’], [4, ‘万’], [5, ‘拾’], [6, ‘佰’], [7, ‘仟’], [8, ‘亿’]]) this.decimalMap = new Map([[0, ‘分’], [1, ‘角’]]) this.resultSet = new Set() /** * 转换* * @param {number} num 待转换的整数* @returns * @memberof RMB */ transform(num) { this.resultSet.clear() num = (‘‘ + num).split(‘.’) let integer = num[0], decimal = num[1] ? num[1].substr(0, 2) : [] this.add(integer, this.integerMap).add(decimal, this.decimalMap) return [...this.resultSet].join(‘‘) /** * 转换* * @param {array} numType * @param {map} mapType * @returns * @memberof RMB */ add(numType, mapType) { let len = numType.length for (let i = 0; i len; i++) { this.resultSet.add(this.numMap.get(+numType[i]) + (+numType[i] ? mapType.get(len - i - 1) : ‘‘)) return thislet rmb = new RMB()console.log(rmb.transform(2114523.234))// 贰佰壹拾壹万肆仟伍佰贰拾叁元贰角叁分tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

相关文档
最新文档