JS金额大小写转化函数

合集下载

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 && $1[0] == 1 && 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) > 0 )(pos = left - left%4;}if( pos )(return idxs[po s] + num[$1[0]];} else if( idx + $1.length >= 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>。

javascript字母大小写转换的4个函数详解

javascript字母大小写转换的4个函数详解

javascript字母⼤⼩写转换的4个函数详解js中实现字母⼤⼩写转换主要⽤到了四个js函数:1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase下⾯就这四个实现⼤⼩写转换的js函数逐⼀做简单的分析。

1.toLocaleUpperCase将字符串中所有的字母字符都将被转换为⼤写的,同时适应宿主环境的当前区域设置。

2.toUpperCase将字符串中的所有字母都被转化为⼤写字母。

3.toLocaleLowerCase将字符串所有的字母字符都被转换为⼩写,同时考虑到宿主环境的当前区域设置。

4.toLowerCase将字符串中的字母被转换为⼩写字母。

以上四个函数的⽤法基本相同,下⾯只以 toLowerCase 举例说明:复制代码代码如下:var str='/ABC';document.write(str.toLowerCase());//将输出 /abc或者:复制代码代码如下:document.write('/ABC'.toLowerCase());我们可以看到 toLocaleUpperCase 和 toUpperCase 功能都是⼀样的,toLocaleLowerCase 和 toLowerCase 也是⼀样的功能,那么他们有什么区别呢?(1)toLocaleUpperCase toLocaleLowerCase 这两个函数在转换字符串中的字符时,同时将适应宿主环境的当前区域设置。

在⼤多数情况下,其结果与利⽤ toUpperCase toLowerCase 这两个函数所得到的结果是⼀样的。

但是如果语⾔规则与常规的Unicode ⼤⼩写映射⽅式冲突,那么结果就会不同。

(2)toUpperCase toLowerCase ⽅法不会转换字符串中的⾮字母字符。

Javascript-将人民币数字转换成大写形式

Javascript-将人民币数字转换成大写形式

用JavaScript编写了一功能函数,完成如下功能:1、对一给定字符串,如:1234.55,转换成正确的中文货币描述:如:人民币壹仟贰佰叁拾四元五角五分2、输入的字符串形式可以是以下几种:带分隔符的,如:123,456,789.00;不带分隔符的,如:1234567893、输出的中文货币描述要符合规范,如:0.3----人民币三角;0.33----人民币三角三分;1----人民币壹元整100----人民币壹佰元整;1001----人民币壹仟零壹元整;10000001----人民币壹仟万零壹元整;1001001----人民币壹仟零壹万零壹元整,等4、最大转换能到百亿具体的代码如下:&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;script language="jscript"&gt;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 = "人民币";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;rrencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters. currencyDigits = currencyDigits.replace(/。

JavaScript小写金额转大写

JavaScript小写金额转大写

JavaScript⼩写⾦额转⼤写js⼩写⾦额转⼤写⾦额//代码如下所⽰:function EACurrency(money) {//汉字的数字var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');//基本单位var cnIntRadice = new Array('', '拾', '佰', '仟');//对应整数部分扩展单位var cnIntUnits = new Array('', '万', '亿', '兆');//对应⼩数部分单位var cnDecUnits = new Array('⾓', '分', '毫', '厘');//整数⾦额时后⾯跟的字符var cnInteger = '整';//整型完以后的单位var cnIntLast = '元';//最⼤处理的数字var maxNum = 999999999999999.9999;//⾦额整数部分var integerNum;//⾦额⼩数部分var decimalNum;//输出的中⽂⾦额字符串var chineseStr = '';//分离⾦额后⽤的数组,预定义var parts;if (money == '') { return ''; }money = parseFloat(money);if (money >= maxNum) {//超出最⼤处理数字return '';}if (money == 0) {chineseStr = cnNums[0] + cnIntLast + cnInteger;return chineseStr;}//转换为字符串money = money.toString();if (money.indexOf('.') == -1) {integerNum = money;decimalNum = '';} else {parts = money.split('.');integerNum = parts[0];decimalNum = parts[1].substr(0, 4);}//获取整型部分转换if (parseInt(integerNum, 10) > 0) {var zeroCount = 0;var IntLen = integerNum.length;for (var i = 0; i < IntLen; i++) {var n = integerNum.substr(i, 1);var p = IntLen - i - 1;var q = p / 4;var m = p % 4;if (n == '0') {zeroCount++;} else {if (zeroCount > 0) {chineseStr += cnNums[0];}//归零zeroCount = 0;chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];}if (m == 0 && zeroCount < 4) {chineseStr += cnIntUnits[q];}}chineseStr += cnIntLast;}//⼩数部分if (decimalNum != '') {var decLen = decimalNum.length;for (var i = 0; i < decLen; i++) {var n = decimalNum.substr(i, 1);if (n != '0') {chineseStr += cnNums[Number(n)] + cnDecUnits[i];}}}if (chineseStr == '') {chineseStr += cnNums[0] + cnIntLast + cnInteger; } else if (decimalNum == '') {chineseStr += cnInteger;}return chineseStr;}。

使用js进行数字大小写的转换

使用js进行数字大小写的转换

使⽤js进⾏数字⼤⼩写的转换//判断⽉租⾦输⼊是否是数字function SetDefaultValueInError() { var yzj = document.getElementById("ctl00_ContentPlaceHolder2_RadTextBox11_text");//获取源 var tmpV = ""; if (yzj != null) { tmpV = yzj.value; if (isNaN(tmpV)) { tmpV = 0; } } document.getElementById("ctl00_ContentPlaceHolder2_RadTextBox11_text").value = tmpV;//设置控件的值(⼩写的) GetValueA(tmpV);}//获取各个位上的数function GetValueA(tmpV) { var yjz = MoneyCn(parseFloat(tmpV)); var b, s, y, j; var a = "佰"; var a1 = "拾"; var a2 = "圆"; var a3 = "⾓"; var a4 = "分"; b = yjz.toString().split(a.toString().split('')).length > 1 ? yjz.toString().split(a.toString().split(''))[0].substring(yjz.toString().split(a.toString().split(''))[0].length - 1) : "零"; s = yjz.toString().split(a1.toString().split('')).length > 1 ? yjz.toString().split(a1.toString().split('')) [0].substring(yjz.toString().split(a1.toString().split(''))[0].length - 1) : "零"; y = yjz.toString().split(a2.toString().split('')).length > 1 ? yjz.toString().split(a2.toString().split('')) [0].substring(yjz.toString().split(a2.toString().split(''))[0].length - 1) : "零"; j = yjz.toString().split(a3.toString().split('')).length > 1 ? yjz.toString().split(a3.toString().split(''))[0].substring(yjz.toString().split(a3.toString().split(''))[0].length - 1) : "零"; f = yjz.toString().split(a4.toString().split('')).length > 1 ? yjz.toString().split(a4.toString().split(''))[0].substring(yjz.toString().split(a4.toString().split(''))[0].length - 1) : "零"; if (y == "拾" || y == "佰") { y = "零"; } if (y == "⼀") { y = "壹"; } //在这⾥可以进⾏相应的赋值 ....... .......}//转换⼤写函数function MoneyCn(number) { if (number == 0) { return "零"; } var Result = ConvertNumberToCase(number);//转换标准//alert(Result); Result = Result.toString().replace("⼀", "壹"); Result = Result.toString().replace("⼆", "贰"); Result = Result.toString().replace("三", "叁"); Result = Result.toString().replace("四", "肆"); Result = Result.toString().replace("五", "伍"); Result = Result.toString().replace("六", "陆"); Result = Result.toString().replace("七", "柒"); Result = Result.toString().replace("⼋", "捌"); Result = Result.toString().replace("九", "玖"); Result = Result.toString().replace("九", "玖"); Result = Result.toString().replace("⼗", "拾"); Result = Result.toString().replace("百", "佰"); Result = Result.toString().replace("千", "仟"); //alert(Result); Result = Result.toString().replace("⼀", "壹"); Result = Result.toString().replace("⼆", "贰"); Result = Result.toString().replace("三", "叁"); Result = Result.toString().replace("四", "肆"); Result = Result.toString().replace("五", "伍"); Result = Result.toString().replace("六", "陆"); Result = Result.toString().replace("七", "柒"); Result = Result.toString().replace("⼋", "捌"); Result = Result.toString().replace("九", "玖"); Result = Result.toString().replace("九", "玖"); Result = Result.toString().replace("⼗", "拾"); Result = Result.toString().replace("百", "佰"); Result = Result.toString().replace("千", "仟"); Result = Result.toString().replace("⼀", "壹"); if (Result.toString().split("点") != null && Result.toString().split("点").length >= 2) { var P = Result.toString().indexOf("点"); //Result = Result.toString().push(P + 2, "⾓"); Result = Result.toString().replace("点", "圆"); Result = Result.toString().replace("⾓分", "⾓"); Result = Result.toString().replace("零分", ""); Result = Result.toString().replace("零⾓", ""); Result = Result.toString().replace("分⾓", ""); if (Result.toString().substring(0, 2) == "零圆") { Result = Result.Replace("零圆", ""); } } else { Result += "圆整"; } Result = "⼈民币" + Result; return Result;}//转换⼤写标准function ConvertNumberToCase(number) { var cPointCn = "点⼗百千万⼗百千亿⼗百千"; var cNumberCn = "零⼀⼆三四五六七⼋九"; if (number == "0") { return "" + cPointCn.substring(0, 1); } if (number.toString().split('.') != null && number.toString().split('.').length < 2) { number += "."; } var P = number.toString().indexOf("."); var Result = ""; for (var i = 0; i < number.toString().length; i++) { if (P == i) { Result = Result.toString().replace("零⼗零", "零"); Result = Result.toString().replace("零百零", "零"); Result = Result.toString().replace("零千零", "零"); Result = Result.toString().replace("零⼗", "零"); Result = Result.toString().replace("零百", "零"); Result = Result.toString().replace("零千", "零"); Result = Result.toString().replace("零万", "万"); Result = Result.toString().replace("零亿", "亿"); Result = Result.toString().replace("亿万", "亿"); Result = Result.toString().replace("零点", "点"); }else { if (P > i) { Result += "" + cNumberCn.substring(number.toString().substring(i, i + 1), parseInt(number.toString().substring(i, i + 1), 10) + 1) + cPointCn.substring(P - i - 1, P - i); } else { var n = i - P; switch (n) { case 1: Result += "" + cNumberCn.substring(number.toString().substring(i, i + 1), parseInt(number.toString().substring(i, i + 1), 10) + 1) + "⾓"; break; case 2: Result += "" + cNumberCn.substring(number.toString().substring(i, i + 1), parseInt(number.toString().substring(i, i + 1), 10) + 1) + "分"; break; default: Result += "" + cNumberCn.substring(number.toString().substring(i, i + 1), parseInt(number.toString().substring(i, i + 1), 10) + 1); break; } Result = Result.toString().replace("零⾓", "⾓"); Result = Result.toString().replace("零分", "分"); } } } if (Result.toString().substring(Result.toString().Length - 1, 1) == "" + cPointCn.substring(0,1)) { Result = Result.toString().remove(Result.Length - 1); // ⼀点-> ⼀ } if (Result.substring(0, 1) == cPointCn.substring(0, 1)) { Result = cNumberCn.substring(0, 1) + Result; // 点三-> 零点三 } if ((Result.toString().Length > 1) && (Result.substring(1, 2) == cPointCn.substring(1, 2)) && (Result.substring(0, 1) == cNumberCn.substring(1, 2))) { Result = Result.toString().remove(0, 1); // ⼀⼗三-> ⼗三 }//alert(Result);return Result;}。

JavaScript中如何将一个字符串转换为大写

JavaScript中如何将一个字符串转换为大写

JavaScript中如何将一个字符串转换为大写在JavaScript中,我们可以使用内置的方法将一个字符串转换为大写。

本文将介绍两种常用的方法来实现这个目标。

方法一:使用toUpperCase()方法toUpperCase()方法可以将字符串中的所有字母转换为大写形式。

下面是一个示例代码:```javascriptlet str = "hello world";let upperCaseStr = str.toUpperCase();console.log(upperCaseStr);```输出结果为:"HELLO WORLD"。

方法二:使用String.fromCharCode()方法和charCodeAt()方法的组合这种方法需要将字符串转换为Unicode编码,然后使用String.fromCharCode()方法将Unicode编码转换为相应的字符。

以下是一个示例代码:```javascriptfunction toUpperCase(str) {let result = "";for (let i = 0; i < str.length; i++) {let charCode = str.charCodeAt(i);if (charCode >= 97 && charCode <= 122) {result += String.fromCharCode(charCode - 32);} else {result += str.charAt(i);}}return result;}let str = "hello world";let upperCaseStr = toUpperCase(str);console.log(upperCaseStr);```输出结果同样为:"HELLO WORLD"。

js中实现小写金额到大写金额的转换

js中实现小写金额到大写金额的转换

<!doctype html><html language="en"><head><meta charset=utf-8><title>明日图书网</title></head><body>小写:<input type=text id="low" /><br/>大写:<input type=text id="upp" /><br/><input type=button value="转换" onclick="transfer_1()" /></body><script type="text/javascript">function transfer_1(){var s1=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];var s2=["分","角","圆","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"];var str=document.getElementById("low").value.replace(".","");//去除"."var s=new Array(str.length*2);//存储大写的金额var length=str.length;//原因见后文if(isNaN(str)){alert("检查输入");document.getElementById("low").value="";}else{alert("输入正常");for(var i=0;i<length;i++){//长度不能表示str.length,否则i和后面的数组长度无法准确取值var num=str%10;str=Math.floor(str/10);s[length*2-1-i*2]=s2[i];//单位填空s[length*2-1-i*2-1]=s1[num];//数值填空}//循环okdocument.getElementById("upp").value=s.join("");}}</script></html>。

js将数字金额转换为中文大写的方法

js将数字金额转换为中文大写的方法

js将数字金额转换为中文大写的方法使用JavaScript将数字金额转换为中文大写是一个常见的需求,本文将介绍一种方法来实现这个功能。

我们需要明确一些基本规则。

中文大写的金额是以"元"为单位进行分组的,每个分组包含四个数字。

例如,10000元可以写作一万元,100000000元可以写作一亿元。

在每个分组内,数字的读法也有一定的规律,例如1234可以读作一千二百三十四。

接下来,我们可以按照以下步骤来实现转换功能:1. 首先,定义一个函数`convertToChinese(num)`,接受一个数字参数`num`,表示要转换的金额。

这个函数将返回转换后的中文大写金额。

2. 在函数内部,我们需要对输入的数字进行一些预处理。

首先,将数字转换为字符串,方便对每一位进行处理。

然后,判断数字是否为负数,如果是负数,则在转换结果前面加上"负"字。

3. 接下来,我们需要将数字分组,每四个数字为一组。

可以使用循环将数字转换为一个个四位的子串,存储在一个数组中。

4. 对于每个四位的子串,我们需要根据其位数和值来确定对应的中文读法。

可以使用一个变量`unit`来表示当前子串的单位("万"、"亿"等),初始值为"元"。

然后,使用循环将每个数字转换为中文读法,并根据位数添加对应的单位。

5. 最后,将转换结果拼接起来,并返回。

下面是具体的代码实现:```javascriptfunction convertToChinese(num) {// 将数字转换为字符串let str = num.toString();// 判断是否为负数let isNegative = false;if (str[0] === '-') {isNegative = true;str = str.slice(1);}// 分组let groups = [];while (str.length > 0) {groups.unshift(str.slice(-4));str = str.slice(0, -4);}// 中文读法let units = ['元', '万', '亿', '万亿'];let chineseChars = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];let result = isNegative ? '负' : '';for (let i = 0; i < groups.length; i++) {let group = groups[i];let groupResult = '';let zeroFlag = false; // 是否已经出现过零for (let j = 0; j < group.length; j++) {let digit = Number(group[j]);let digitResult = '';if (digit === 0) {// 当前数字为零zeroFlag = true;continue;}digitResult += chineseChars[digit] + '拾'; // 个位数读法if (j === 1 && digit === 1) {digitResult = '拾';}if (j === 2) {digitResult = chineseChars[digit] + '佰'; // 十位数读法}if (j === 3 && digit === 1 && group.length === 4) {digitResult = '拾';}if (j === 3 && digit === 2 && group.length === 4) {digitResult = '佰';}if (j === 3 && digit === 0 && !zeroFlag) {digitResult = '零';}groupResult += digitResult;zeroFlag = false;}result = groupResult + units[i] + result;}return result;}// 测试console.log(convertToChinese(1234)); // 一千二百三十四元console.log(convertToChinese(10000)); // 一万元console.log(convertToChinese(100000000)); // 一亿元console.log(convertToChinese(-1234)); // 负一千二百三十四元```以上就是使用JavaScript将数字金额转换为中文大写的方法。

js 处理数字转换成金额的方法

js 处理数字转换成金额的方法

js 处理数字转换成金额的方法在JavaScript中,将数字转换为金额通常需要遵循一些特定的格式和规则,特别是涉及到货币符号、小数点、千位分隔符等。

以下是一个简单的例子,说明如何实现这个转换。

首先,我们假设你有一个数字,例如 `.89`,你想将它转换成 `¥1,234,` 的格式。

下面是一个简单的JavaScript函数,可以将数字转换为这种金额格式:```javascriptfunction numberToCNYMoney(num) {var fraction = ['角', '分'];var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];var unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];var head = num < 0? '欠': '';num = (num);var s = '';for (var i = 0; i < ; i++) {s += (digit[(num 10 (10, i)) % 10] + fraction[i]).replace(/零./, ''); }s = s '整';num = (num);for (var i = 0; i < unit[0].length && num > 0; i++) {var p = '';for (var j = 0; j < unit[1].length && num > 0; j++) {p = digit[num % 10] + unit[1][j] + p;num = (num / 10);}s = (/(零.)零$/, '').replace(/^$/, '零') + unit[0][i] + s;}return head + (/(零.)零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');}```你可以这样使用这个函数:```javascript(numberToCNYMoney.89)); // 输出:¥壹百贰十三万肆仟伍佰陆十七元捌角玖分```请注意,这只是一个简单的示例,并不涵盖所有可能的边界情况。

js处理大额金额数字的方法

js处理大额金额数字的方法

js处理大额金额数字的方法处理大额金额数字是在开发中常遇到的需求之一。

在 JavaScript 中,可以使用以下方法来处理大额金额数字:1. 使用toLocaleString()方法:这个方法可以将一个数字转换为一个本地化的字符串表示,包括千位分隔符和适当的小数位数。

例如,假设我们有一个大额金额数字为1000000,可以使用如下代码将其转换为本地化的字符串表示:```javascriptconst amount = 1000000;const formattedAmount = amount.toLocaleString();console.log(formattedAmount); // 输出: 1,000,000```2. 自定义函数实现千位分隔符:除了使用内置的toLocaleString()方法,我们还可以自定义一个函数来实现千位分隔符的效果。

下面是一个简单的示例代码:```javascriptfunction addCommasToAmount(amount) {const parts = amount.toString().split('.');parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');return parts.join('.');}const amount = 1000000;const formattedAmount = addCommasToAmount(amount);console.log(formattedAmount); // 输出: 1,000,000```在上述代码中,我们首先将数字转换为字符串,然后使用正则表达式替换字符串中的千位分隔符。

3. 使用BigInt数据类型:在处理大额金额数字时,JavaScript 的 Number 类型有精度限制,为了避免精度丢失问题,可以使用 BigInt 数据类型。

js完美转换阿拉伯数字为数字大写(原创)

js完美转换阿拉伯数字为数字大写(原创)

js完美转换阿拉伯数字为数字⼤写(原创)啥都不说,直接上代码://阿拉伯数字转换为简写汉字function Arabia_To_SimplifiedChinese(Num) {for (i = Num.length - 1; i >= 0; i--) {Num = Num.replace(",", "")//替换Num中的“,”Num = Num.replace(" ", "")//替换Num中的空格}if (isNaN(Num)) { //验证输⼊的字符是否为数字//alert("请检查⼩写⾦额是否正确");return;}//字符处理完毕后开始转换,采⽤前后两部分分别转换part = String(Num).split(".");newchar = "";//⼩数点前进⾏转化for (i = part[0].length - 1; i >= 0; i--) {if (part[0].length > 10) {//alert("位数过⼤,⽆法计算");return "";}//若数量超过拾亿单位,提⽰tmpnewchar = ""perchar = part[0].charAt(i);switch (perchar) {case "0": tmpnewchar = "零" + tmpnewchar;break;case "1": tmpnewchar = "⼀" + tmpnewchar; break;case "2": tmpnewchar = "⼆" + tmpnewchar; break;case "3": tmpnewchar = "三" + tmpnewchar; break;case "4": tmpnewchar = "四" + tmpnewchar; break;case "5": tmpnewchar = "五" + tmpnewchar; break;case "6": tmpnewchar = "六" + tmpnewchar; break;case "7": tmpnewchar = "七" + tmpnewchar; break;case "8": tmpnewchar = "⼋" + tmpnewchar; break;case "9": tmpnewchar = "九" + tmpnewchar; break;}switch (part[0].length - i - 1) {case 0: tmpnewchar = tmpnewchar; break;case 1: if (perchar != 0) tmpnewchar = tmpnewchar + "⼗"; break;case 2: if (perchar != 0) tmpnewchar = tmpnewchar + "百"; break;case 3: if (perchar != 0) tmpnewchar = tmpnewchar + "千"; break;case 4: tmpnewchar = tmpnewchar + "万"; break;case 5: if (perchar != 0) tmpnewchar = tmpnewchar + "⼗"; break;case 6: if (perchar != 0) tmpnewchar = tmpnewchar + "百"; break;case 7: if (perchar != 0) tmpnewchar = tmpnewchar + "千"; break;case 8: tmpnewchar = tmpnewchar + "亿"; break;case 9: tmpnewchar = tmpnewchar + "⼗"; break;}newchar = tmpnewchar + newchar;}//替换所有⽆⽤汉字,直到没有此类⽆⽤的数字为⽌while (newchar.search("零零") != -1 || newchar.search("零亿") != -1 || newchar.search("亿万") != -1 || newchar.search("零万") != -1) {newchar = newchar.replace("零亿", "亿");newchar = newchar.replace("亿万", "亿");newchar = newchar.replace("零万", "万");newchar = newchar.replace("零零", "零");}//替换以“⼀⼗”开头的,为“⼗”if (newchar.indexOf("⼀⼗") == 0) {newchar = newchar.substr(1);}//替换以“零”结尾的,为“”if (stIndexOf("零") == newchar.length - 1) {newchar = newchar.substr(0, newchar.length - 1);}return newchar;}将上⾯的代码保存为digital.js⽂件。

Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)

Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)

在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式ps:如果不考虑后面的小数点,最快捷的方法:"12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出12 345 6781.用循环的方式实现function formatNum(str){&nbsp;var newStr = "";&nbsp;var count = 0;&nbsp;if(str.indexOf(".")==-1){&nbsp; for(var i=str.length-1;i&gt;=0;i--){&nbsp; &nbsp;if(count % 3 == 0 &amp;&amp; count != 0){&nbsp; &nbsp; newStr = str.charAt(i) + "," + newStr;&nbsp; &nbsp;}else{&nbsp; &nbsp; newStr = str.charAt(i) + newStr;&nbsp; &nbsp;}&nbsp; &nbsp;count++;&nbsp; }&nbsp; str = newStr + ".00"; //自动补小数点后两位&nbsp; console.log(str)&nbsp;}&nbsp;else&nbsp;{&nbsp; for(var i = str.indexOf(".")-1;i&gt;=0;i--){&nbsp; &nbsp;if(count % 3 == 0 &amp;&amp; count != 0){&nbsp; &nbsp; newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号&nbsp; &nbsp;}else{&nbsp; &nbsp; newStr = str.charAt(i) + newStr; //逐个字符相接起来&nbsp; &nbsp;}&nbsp; &nbsp;count++;&nbsp; }&nbsp; str = newStr + (str + "00").substr((str + "00").indexOf("."),3);&nbsp; console.log(str)&nbsp;}}formatNum('13213.24'); //输出13,213.34formatNum('132134.2'); //输出132,134.20formatNum('132134'); //输出132,134.00formatNum('132134.236'); //输出132,134.2362.使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)function regexNum(str){&nbsp;var regex = /(\d)(?=(\d\d\d)+(?!\d))/g;&nbsp;if(str.indexOf(".") == -1){&nbsp; str= str.replace(regex,',') + '.00';&nbsp; console.log(str)&nbsp;}else{&nbsp; var newStr = str.split('.');&nbsp; var str_2 = newStr[0].replace(regex,',');&nbsp; if(newStr[1].length &lt;= 1){&nbsp;&nbsp; &nbsp;//小数点后只有一位时&nbsp; &nbsp;str_2 = str_2 + '.' + newStr[1] +'0';&nbsp; &nbsp;console.log(str_2)&nbsp; }else if(newStr[1].length &gt; 1){&nbsp;&nbsp; &nbsp;//小数点后两位以上时&nbsp; &nbsp;var decimals = newStr[1].substr(0,2); &nbsp; &nbsp;var srt_3 = str_2 + '.' + decimals;&nbsp; &nbsp;console.log(srt_3)&nbsp; }&nbsp;}};regexNum('23424224'); //输出2,42,224.00&nbsp; regexNum('23424224.2'); //输出2,42,224.20 regexNum('23424224.22'); //输出2,42,224.22 regexNum('23424224.233'); //输出2,42,224.23&nbsp; 以上就是本文的全部内容。

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