JS金额大小写转化函数
JavaScript将数字转换成大写中文的方法
![JavaScript将数字转换成大写中文的方法](https://img.taocdn.com/s3/m/c2220434aa00b52acec7cae4.png)
这篇文章主要介绍了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函数代码](https://img.taocdn.com/s3/m/4fdef2df88eb172ded630b1c59eef8c75ebf955c.png)
Strin g.pro totyp e.Tri m = fu nctio n() {ret urn this.repl ace(/(^\s*)|(\s*$)/g,"");} //去空格函数 varorde rwebs ite=d ocume nt.ge tElem entBy Id("<%=txt Order WebSi te.Cl ientI D%>").valu e; ord erweb site= ord erweb site.Trim(); varcanc elord erweb site=docum ent.g etEle mentB yId("<%=tx tCanc elOrd erWeb Site.Clien tID%>").va lue;c ancel order websi te =cance lorde rwebs ite.T rim();----------------------------------------------------------------------------------------------------------------------//增加一个名为 tri m 的函数作为// Stri ng 构造函数的原型对象的一个方法。
S tring.prot otype.trim = fu nctio n(){// 用正则表达式将前后空格// 用空字符串替代。
retur n thi s.rep lace(/(^\s*)|(\s*$)/g, "");}// 有空格的字符串var s =" leadi ng an d tra iling spac es ";// 显示 " lead ing a nd tr ailin g spa ces (35)"w indow.aler t(s + " (" + s.lengt h + ")");// 删除前后空格s =s.tri m();// 显示"lead ing a nd tr ailin g spa ces (27)"windo w.ale rt(s+ " (" + s.leng th +")");-----------------------------------------------------------------------------------------------js中本身是没有trim函数的,不过你可以自己写一个funct ion t rim(s tr) {var n ewStr = st r.rep lace(/^\s*$/g,'') ret run n ewStr;}---------------------------------------------------------------------------------ja vascr ipt:func tionChang eToBi g(val ue) {va r int Fen,i;va r str Arr,s trChe ck,st rFen,strDW,strN um,st rBig,strNo w;if(tr im(va lue)=="")//数据为空时返回"零"r eturn "零";if(isNa N(val ue))//数据非法时提示,并返回空串{ strEr r = "数据"+v alue+"非法!"ale rt(st rErr);re turn""; }st rChec k = v alue+".";strA rr =strCh eck.s plit(".");str Check = st rArr[0]; if(st rChec k.len gth>12) //数据大于等于一万亿时提示无法处理{strE rr ="数据"+value+"过大,无法处理!"al ert(s trErr);r eturn "";}t ry{i = 0; strBi g = "";i ntFen = va lue*100; //转换为以分为单位的数值s trFen = in tFen.toStr ing();st rArr= str Fen.s plit(".");str Fen = strA rr[0];in tFen= str Fen.l ength; //获取长度strAr r = s trFen.spli t(""); //将各个数值分解到数组内whi le(in tFen!=0) //分解并转换{i =i+1;swit ch(i) //选择单位{cas e 1:s trDW= "分";brea k;c ase 2:strD W = "角";br eak;case 3:st rDW = "元";break;ca se 4:strDW = "拾";bre ak; case5:str DW ="佰";b reak;cas e 6:s trDW= "仟";brea k;c ase 7:strD W = "万";br eak;case 8:st rDW = "拾";break;ca se 9:strDW = "佰";bre ak; case10:st rDW = "仟";break;ca se 11:strD W = "亿";br eak;case 12:s trDW= "拾";brea k;c ase 13:str DW ="佰";b reak;cas e 14:strDW = "仟";bre ak; }sw itch(strA rr[in tFen-1]) //选择数字{ case"1":s trNum = "壹";bre ak; case"2":s trNum = "贰";bre ak; case"3":s trNum = "叁";bre ak; case"4":s trNum = "肆";bre ak; case"5":s trNum = "伍";bre ak; case"6":s trNum = "陆";bre ak; case"7":s trNum = "柒";bre ak; case"8":s trNum = "捌";bre ak; case"9":s trNum = "玖";bre ak; case"0":s trNum = "零";bre ak; }//处理特殊情况s trNow = st rBig.split("");//分为零时的情况if((i==1)&&(strAr r[int Fen-1]=="0")) strBi g = "整"; //角为零时的情况else if((i==2)&&(st rArr[intFe n-1]=="0")){//角分同时为零时的情况i f(str Big!="整")strB ig ="零"+s trBig;}//元为零的情况else if((i==3)&&(st rArr[intFe n-1]=="0"))st rBig= "元"+strB ig; //拾-仟中一位为零且其前一位(元以上)不为零的情况时补零else if((i<7)&&(i>3)&&(s trArr[intF en-1]=="0")&&(s trNow[0]!="零")&&(str Now[0]!="元")) strBi g = "零"+st rBig;//拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过el se if((i<7)&&(i>3)&&(strA rr[in tFen-1]=="0")&&(strN ow[0]=="零")){}//拾-仟中一位为零且其前一位是元且为零的情况时跨过else if((i<7)&&(i>3)&&(s trArr[intF en-1]=="0")&&(s trNow[0]=="元")){}//当万为零时必须补上万字else if((i==7)&&(st rArr[intFe n-1]=="0"))st rBig="万"+strBi g;//拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零els e if((i<11)&&(i>7)&&(strA rr[in tFen-1]=="0")&&(strN ow[0]!="零")&&(s trNow[0]!="万"))str Big = "零"+strBi g;//拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过els e if((i<11)&&(i>7)&&(strA rr[in tFen-1]=="0")&&(strN ow[0]=="万")){}//拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过e lse i f((i<11)&&(i>7)&&(st rArr[intFe n-1]=="0")&&(st rNow[0]=="零")){} //万位为零且存在仟位和十万以上时,在万仟间补零else if((i<11)&&(i>8)&&(strAr r[int Fen-1]!="0")&&(strNo w[0]=="万")&&(st rNow[2]=="仟"))strB ig =strNu m+str DW+"万零"+st rBig.subst ring(1,str Big.l ength);//单独处理亿位e lse i f(i==11) {//亿位为零且万全为零存在仟位时,去掉万补为零if((str Arr[i ntFen-1]=="0")&&(str Now[0]=="万")&&(strNo w[2]=="仟"))st rBig="亿"+"零"+s trBig.subs tring(1,st rBig.lengt h); //亿位为零且万全为零不存在仟位时,去掉万el se if((str Arr[i ntFen-1]=="0")&&(str Now[0]=="万")&&(strNo w[2]!="仟")) st rBig="亿"+strBi g.sub strin g(1,s trBig.leng th);//亿位不为零且万全为零存在仟位时,去掉万补为零els e if((strN ow[0]=="万")&&(s trNow[2]=="仟"))str Big = strN um+st rDW+"零"+st rBig.subst ring(1,str Big.l ength);//亿位不为零且万全为零不存在仟位时,去掉万el se if((str Now[0]=="万")&&(strNo w[2]!="仟"))st rBig= str Num+s trDW+strBi g.sub strin g(1,s trBig.leng th);//其他正常情况elsestr Big = strN um+st rDW+s trBig;}//拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零e lse i f((i<15)&&(i>11)&&(s trArr[intF en-1]=="0")&&(s trNow[0]!="零")&&(str Now[0]!="亿")) strBi g = "零"+st rBig;//拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过elseif((i<15)&&(i>11)&&(strAr r[int Fen-1]=="0")&&(strNo w[0]=="亿")){}//拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过el se if((i<15)&&(i>11)&&(st rArr[intFe n-1]=="0")&&(st rNow[0]=="零")){} //亿位为零且不存在仟万位和十亿以上时去掉上次写入的零e lse i f((i<15)&&(i>11)&&(s trArr[intF en-1]!="0")&&(s trNow[0]=="零")&&(str Now[1]=="亿")&&(strNo w[3]!="仟"))st rBig= str Num+s trDW+strBi g.sub strin g(1,s trBig.leng th);//亿位为零且存在仟万位和十亿以上时,在亿仟万间补零e lse i f((i<15)&&(i>11)&&(s trArr[intF en-1]!="0")&&(s trNow[0]=="零")&&(str Now[1]=="亿")&&(strNo w[3]=="仟"))st rBig= str Num+s trDW+"亿零"+strBi g.sub strin g(2,s trBig.leng th);elsestr Big = strN um+st rDW+s trBig;st rFen= str Fen.s ubstr ing(0,intF en-1);in tFen= str Fen.l ength;st rArr= str Fen.s plit("");}r eturn strB ig; }catc h(err){r eturn "";//若失败则返回原值} }<html><he ad> <meta http-equi v="Co ntent-Type" con tent="text/html; cha rset=gb2312"> <meta name="GEN ERATO R" co ntent="Mic rosof t Fro ntPag e 4.0"><metaname="Prog Id" c onten t="Fr ontPa ge.Ed itor.Docum ent"><ti tle>转换大写金额</tit le> <STYL E typ e=tex t/css>IN PUT {}{ BO RDER-RIGHT: #c0d3dc1px s olid; BORD ER-TO P: #c0d3dc 1pxsolid; BOR DER-L EFT:#c0d3dc 1p x sol id; B ORDER-BOTT OM: #c0d3d c 1px soli d; fo nt-fa mily: verd ana;HEIGH T: 19px} BODY{}{fo nt-fa mily:arial,helv etica,Taho ma; f ont-s ize:9pt;color:'094A82'}</ST YLE><bgs oundid=bg sound one s rc="" loop=1> </hea d><body><SC RIPTLANGU AGE="VBScr ipt">dim hj,h jis ub do cumen t_onk eypre ss()if w indow.even t.src eleme nt.id="num" and wind ow.ev ent.k eycod e="13" the nca ll re tu_cn()e nd ifend subsubwindo w_onl oad()doc ument.fmSu bmit.t1.fo cus()end subSUBretu_cn()dimn,m_h j,s,c h,ch2,ch3,num num=R eplac e(tri m(doc ument.fmSu bmit.t1.va lue),",","",1,-1,1)if n um="" thenMsg Box "您还没有输入金额!"doc ument.fmSu bmit.t1.fo cus()exi t subEnd If if Is Numer ic(nu m)=Fa lse t hen MsgBo x "您输入的不是金额!" docum ent.f mSubm it.t1.focu s() exitsub End I fn=Forma tNumb er(nu m,2,-1)n um=nn=Re place(n,",","",1,-1,1)I f len(n)>15 The nMs gBox"金额必须小于千亿!"do cumen t.fmS ubmit.t1.f ocus()ex it su bEn d Ifhj=s pace(0)s="840"ch="壹贰叁肆伍陆柒捌玖"c h2="仟佰拾 "ch3="亿万元"for x=1to 3m=cs tr(in t(n/10^For matNu mber(mid(s,x,1),0,-1))) m=spa ce(4-len(m))+mm_hj=spac e(0)if m<>" 0" the nfo r y=1 to 4ifmid(m,y,1)<>spa ce(1) andmid(m,y,1)<>"0" thenm_h j=tri m(m_h j+mid(ch,F ormat Numbe r(mid(m,y,1),0,-1),1)+mid(ch2,y,1)) els eif mid(m,y,1)=spa ce(1) or m id(m,y,1)="0" t hen m_hj=m_hjif r ight(m_hj,1)="零" the nm_hj=m_hj+sp ace(0)el sem_hj=m_hj+"零"e nd ifels em_hj=m_hje nd ifend if nextif r ight(m_hj,1)="零" the nm_hj=mi d(m_h j,1,l en(m_hj)-1)+mid(ch3,x,1)if x=3 th enm_hj=m_hj+s pace(0)e lse m_hj=m_hj+"零" end i fel sem_hj=m_hj+m id(ch3,x,1)en d ifif r ight(hj,1)="零"and m id(m_hj,1,1)="零" the n hj=hj+m id(m_hj,2,len(m_hj)-1)e lse hj=hj+m_hjend if elseif x=3 th eni f rig ht(hj,1)="零" th eni f tri m(hj)="零"thenhj=h j+spa ce(0)els ehj=mid(hj,1,len(h j)-1)+"元"endife lse if tr im(hj)="零" thenhj=hj+sp ace(0)el seh j=hj+"元" end i fen d ifelseifright(hj,1)="零" thenhj=hj+sp ace(0)el seh j=hj+"零" end i fen d ifendifi f n-i nt(n)=0 th enn=n-in t(For matNu mber(m,0,-1))*10^int(Form atNum ber(m id(s,x,1),0,-1)) el set t=For matNu mber("0."+mid(c str(n),Ins tr(1,n,".")+1,2),2)n=in t(n)n=n-int(F ormat Numbe r(m,0,-1))*10^i nt(Fo rmatN umber(mid(s,x,1),0,-1)) n=n+t ten d ifnextm=m id(cs tr(n),2,2)iftrim(len(m))<>2 thenm=m+"0"endifi f n*100=0thenif l eft(h j,1)="零" t hen if ri ght(h j,1)="零" t hen hj=hj+"元整"els ehj=mid(hj,2,len(h j)-1)+"整"endife lse if ri ght(h j,1)="零" t hen hj=mi d(hj,1,len(hj)-1)+"整"el seh j=hj+"整" end i fen d ifelseifright(hj,1)="零" thenhj=mid(h j,1,l en(hj)-1)elsehj=hje nd ififmid(m,1,1)="0"or mi d(m,1,1)=s pace(1) th enh j=hj+"零" elsehj=h j+mid(ch,F ormat Numbe r(mid(m,1,1),0,-1),1)+"角"end if if mi d(hj,1,1)="零" t hen hj=mi d(hj,2,len(hj)-1)e lse hj=hjend if if mi d(m,2,1)="0" th enh j=hj+"整" elsehj=h j+mid(ch,F ormat Numbe r(mid(m,2,1),0,-1),1)+"分"end if end i fif num=".00" thendoc ument.fmSu bmit.t1.va lue="0.00"els edo cumen t.fmS ubmit.t1.v alue=num end i fdo cumen t.fmS ubmit.t2.v alue=""h ji=1call read()E nd Su bSU B rea d() MyVar=mid(hj,hj i,1)docu ment.fmSub mit.t2.val ue=do cumen t.fmS ubmit.t2.v alue+MyVarSel ect C ase M yVarCase "零"docum ent.a ll("b gsoun done").src="htt p://g o.16/yjsj/wav/0.wav"Cas e "壹" docu ment.all("bgsou ndone").sr c="ht tp://go.163.com/yjsj/wav/1.wav"Ca se "贰" doc ument.all("bgso undon e").s rc="h ttp://go.163.co m/yjs j/wav/2.wa v" C ase "叁" do cumen t.all("bgs oundo ne").src="http://go.163.c om/yj sj/wa v/3.w av" Case"肆" d ocume nt.al l("bg sound one").src="http://go.163.com/y jsj/w av/4.wav"Case "伍"docum ent.a ll("b gsoun done").src="htt p://g o.16/yjsj/wav/5.wav"Cas e "陆" docu ment.all("bgsou ndone").sr c="ht tp://go.163.com/yjsj/wav/6.wav"Ca se "柒" doc ument.all("bgso undon e").s rc="h ttp://go.163.co m/yjs j/wav/7.wa v" C ase "捌" do cumen t.all("bgs oundo ne").src="http://go.163.c om/yj sj/wa v/8.w av" Case"玖" d ocume nt.al l("bg sound one").src="http://go.163.com/y jsj/w av/9.wav"Case "拾"docum ent.a ll("b gsoun done").src="htt p://g o.16/yjsj/wav/10.wav" Ca se "佰" doc ument.all("bgso undon e").s rc="h ttp://go.163.co m/yjs j/wav/b.wa v" C ase "仟" do cumen t.all("bgs oundo ne").src="http://go.163.c om/yj sj/wa v/q.w av" Case"万" d ocume nt.al l("bg sound one").src="http://go.163.com/y jsj/w av/w.wav"Case "亿"docum ent.a ll("b gsoun done").src="htt p://g o.16/yjsj/wav/y.wav"Cas e "元" docu ment.all("bgsou ndone").sr c="ht tp://go.163.com/yjsj/wav/yuan.wav"Case "分"docum ent.a ll("b gsoun done").src="htt p://g o.16/yjsj/wav/f en.wa v" C ase "角" do cumen t.all("bgs oundo ne").src="http://go.163.c om/yj sj/wa v/jia o.wav" Ca se "整" doc ument.all("bgso undon e").s rc="h ttp://go.163.co m/yjs j/wav/z.wa v"C ase e lse h ji=0docu ment.all("bgsou ndone").sr c=""exit subEndSelec thj i=hji+1s etTim eout"read",400End Sub</sc ript>最完整、最标准的大写金额转换程序,特别是“零”和“整”的转换,最大金额可到仟亿。
javascript——小写金额转换大写金额
![javascript——小写金额转换大写金额](https://img.taocdn.com/s3/m/75d1e89571fe910ef12df8d4.png)
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
end function
</script>
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
【JavaScript】JS将RMB的小写金额转换为大写金额
![【JavaScript】JS将RMB的小写金额转换为大写金额](https://img.taocdn.com/s3/m/712ff41e4531b90d6c85ec3a87c24028915f8514.png)
【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个函数详解](https://img.taocdn.com/s3/m/764a2adddb38376baf1ffc4ffe4733687e21fc6d.png)
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-将人民币数字转换成大写形式](https://img.taocdn.com/s3/m/819100d87c1cfad6195fa7ad.png)
用JavaScript编写了一功能函数,完成如下功能:1、对一给定字符串,如:1234.55,转换成正确的中文货币描述:如:人民币壹仟贰佰叁拾四元五角五分2、输入的字符串形式可以是以下几种:带分隔符的,如:123,456,789.00;不带分隔符的,如:1234567893、输出的中文货币描述要符合规范,如:0.3----人民币三角;0.33----人民币三角三分;1----人民币壹元整100----人民币壹佰元整;1001----人民币壹仟零壹元整;10000001----人民币壹仟万零壹元整;1001001----人民币壹仟零壹万零壹元整,等4、最大转换能到百亿具体的代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title></title><script language="jscript">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小写金额转大写](https://img.taocdn.com/s3/m/a732fbcc0d22590102020740be1e650e52eacf10.png)
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进行数字大小写的转换](https://img.taocdn.com/s3/m/92416227ef06eff9aef8941ea76e58fafab045c6.png)
使⽤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中如何将一个字符串转换为大写](https://img.taocdn.com/s3/m/ac4a79b8ed3a87c24028915f804d2b160b4e86d5.png)
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中实现小写金额到大写金额的转换](https://img.taocdn.com/s3/m/e09baad18bd63186bcebbc76.png)
<!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将数字金额转换为中文大写的方法](https://img.taocdn.com/s3/m/5b96db09ef06eff9aef8941ea76e58fafab045df.png)
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 处理数字转换成金额的方法](https://img.taocdn.com/s3/m/61917357cd7931b765ce0508763231126fdb777f.png)
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处理大额金额数字的方法](https://img.taocdn.com/s3/m/595f01e70129bd64783e0912a216147917117e83.png)
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完美转换阿拉伯数字为数字大写(原创)](https://img.taocdn.com/s3/m/49e76736366baf1ffc4ffe4733687e21af45ff6b.png)
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将数值转换为金额格式(分隔千分位和自动增加小数点)](https://img.taocdn.com/s3/m/af101c7f77232f60ddcca1ad.png)
在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式ps:如果不考虑后面的小数点,最快捷的方法:"12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出12 345 6781.用循环的方式实现function formatNum(str){ var newStr = ""; var count = 0; if(str.indexOf(".")==-1){ for(var i=str.length-1;i>=0;i--){ if(count % 3 == 0 && count != 0){ newStr = str.charAt(i) + "," + newStr; }else{ newStr = str.charAt(i) + newStr; } count++; } str = newStr + ".00"; //自动补小数点后两位 console.log(str) } else { for(var i = str.indexOf(".")-1;i>=0;i--){ if(count % 3 == 0 && count != 0){ newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号 }else{ newStr = str.charAt(i) + newStr; //逐个字符相接起来 } count++; } str = newStr + (str + "00").substr((str + "00").indexOf("."),3); console.log(str) }}formatNum('13213.24'); //输出13,213.34formatNum('132134.2'); //输出132,134.20formatNum('132134'); //输出132,134.00formatNum('132134.236'); //输出132,134.2362.使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)function regexNum(str){ var regex = /(\d)(?=(\d\d\d)+(?!\d))/g; if(str.indexOf(".") == -1){ str= str.replace(regex,',') + '.00'; console.log(str) }else{ var newStr = str.split('.'); var str_2 = newStr[0].replace(regex,','); if(newStr[1].length <= 1){ //小数点后只有一位时 str_2 = str_2 + '.' + newStr[1] +'0'; console.log(str_2) }else if(newStr[1].length > 1){ //小数点后两位以上时 var decimals = newStr[1].substr(0,2); var srt_3 = str_2 + '.' + decimals; console.log(srt_3) } }};regexNum('23424224'); //输出2,42,224.00 regexNum('23424224.2'); //输出2,42,224.20 regexNum('23424224.22'); //输出2,42,224.22 regexNum('23424224.233'); //输出2,42,224.23 以上就是本文的全部内容。