js实现 阿拉伯数字金额 转换为英文金额 同题~~ 求此函数 急用~! 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很久以前写的一个函数function moneytormb(money){ var dw,num,rmb,dwpos,i; dw="分角元十百千万十百千亿十百千兆十百千万"; num="零壹贰叁肆伍陆柒捌玖"; rmb=""; money=money.toString(); dwpos=money.split(".")[0].length+1; money=money.replace(/\./,""); for(i=0;i<money.length;i++){ rmb+=num.substr(money.substr(i,1),1)+dw.substr(dwpos-i,1); } rmb=rmb.replace(/零[千百十角]/g,"零"); rmb=rmb.replace(/零零零零[兆亿万元]/g,""); rmb=rmb.replace(/零{2,}/g,"零"); rmb=rmb.replace(/零([兆亿万元])/g,"$1"); rmb=rmb.replace(/^元/g,""); rmb=rmb.replace(/零分$/g,""); rmb=rmb.replace(/元$/g,"元整"); return rmb;} 我给例子Euro22367.28Say Euro: twenty two thousand three hundred and sixty seven and cents twenty eight only. 我写过一个SQL的思路大体应该差不多,http://blog.csdn.net/abandonship/archive/2005/11/21/533881.aspx http://blog.csdn.net/abandonship/archive/2005/11/21/533881.aspx已经看过~~ 很有借鉴作用 谢谢自己给结果function englishmoney(){var i;var hundreds;var tenth;var one;var thousand;var million;var billion;var numbers;var svar result;var num;num=document.all['usd'].value;var str;str='000000000000000'+num.toString();numbers='one two three four five ' +'six seven eight nine ten ' +'eleven twelve thirteen fourteen fifteen ' +'sixteen seventeen eighteen nineteen ' +'twenty thirty forty fifty ' +'sixty seventy eighty ninety ';String.prototype.Trim = function(){return this.replace(/^\s+|\s+$/g,"");}String.prototype.Ltrim = function(){return this.replace(/^\s+/g, "");}String.prototype.Rtrim = function(){return this.replace(/\s+$/g, "");} s=str.substring(str.length-15,str.length); billion=parseInt(s.substring(0,3)); //将12位整数分成4段:十亿、百万、千、百十个 million=parseInt(s.substring(3,6)); thousand=parseInt(s.substring(6,9)); result=''; i=0; while(i<=3){ hundreds=parseInt(s.substring(i*3,i*3+1));//百位0-9 tenth=parseInt(s.substring(i*3+1,i*3+2)); if(tenth==1){one=10+parseInt(s.substring(i*3+2,i*3+3));} else {one=0+parseInt(s.substring(i*3+2,i*3+3));} // one=(CASE @tenth WHEN 1 THEN 10 ELSE 0 END)+CAST(SUBSTRING(@s,@i*3+3,1) AS int)--个位0-19 if(tenth<=1){tenth=0;} // tenth=(CASE WHEN @tenth<=1 THEN 0 ELSE @tenth END)--十位0、2-9 if((i==1&&parseInt(billion)>0&&(parseInt(million)>0||parseInt(thousand)>0||parseInt(hundreds)>0))|| (i==2&&(parseInt(billion)>0||parseInt(million)>0)&&(parseInt(thousand)>0||parseInt(hundreds)>0))|| (i==3&&(parseInt(billion)>0||parseInt(million)>0||parseInt(thousand)>0)&&(parseInt(hundreds)>0))) {result=result+', ';}//--百位不是0则每段之间加连接符, if(i==3 && (billion>0 || million>0 || thousand>0) && (hundreds==0 && (tenth>0 || one>0))) {result=result+' and ';}//--百位是0则加连接符AND if(hundreds>0) {result=result+numbers.substring(hundreds*10-10,hundreds*10).Rtrim()+' hundred';} if(tenth>=2 && tenth<=9) { if(hundreds>0) {result=result+' and ';} result=result+numbers.substring(tenth*10+170,tenth*10+180).Rtrim(); } if(one>=1 && one<=19) { if(tenth>0) {result=result+'-';} else { if(hundreds>0){result=result+' and ';} } result=result+numbers.substring(one*10-10,one*10).Rtrim(); } //alert(result);// i=i+1;// } if(i==0 && parseInt(billion)>0){ result=result+' billion';} if(i==1 && parseInt(million)>0){ result=result+' million';} if(i==2 && parseInt(thousand)>0){ result=result+' thousand';} i=i+1; } if(s.substring(13,15)!='00'){ result=result+' point '; if(s.substring(13,14)=='0'){ result=result+'zero';} else {result=result+numbers.substring(parseInt(s.substring(13,14))*10-10,parseInt(s.substring(13,14))*10).Rtrim();} if(s.substring(14,15)!='0'){ result=result+' '+numbers.substring(parseInt(s.substring(14,15))*10-10,parseInt(s.substring(14,15))*10).Rtrim();} } document.all['dollars'].innerText=result;} JQuery问题 请教一个js相加的问题 着急啊,大家来看看吧,javascript 单击table中的按钮取得单元格的值 菜鸟提问:在.NET里如何运用JAVESCRIPT,为什么我这里处理没反应 页面刷新 保存 JS【数组对象】问题 新手疑问 如何製作一個彈出全屏窗口,邊任務欄都看不到的,按了提交後就會返回主頁面,謝謝. foolfish ---->进来接分 怎样用JAVASCRIPT动态新增表格 swftools工具将pdf转换到swf文件时文字或者图片都会变得很模糊,字好像只显示一半的感觉 javascript怎么控制打印的参数 在线等,网页被嵌JS—— "n.js"
var dw,num,rmb,dwpos,i;
dw="分角元十百千万十百千亿十百千兆十百千万";
num="零壹贰叁肆伍陆柒捌玖";
rmb="";
money=money.toString();
dwpos=money.split(".")[0].length+1;
money=money.replace(/\./,"");
for(i=0;i<money.length;i++){
rmb+=num.substr(money.substr(i,1),1)+dw.substr(dwpos-i,1);
}
rmb=rmb.replace(/零[千百十角]/g,"零");
rmb=rmb.replace(/零零零零[兆亿万元]/g,"");
rmb=rmb.replace(/零{2,}/g,"零");
rmb=rmb.replace(/零([兆亿万元])/g,"$1");
rmb=rmb.replace(/^元/g,"");
rmb=rmb.replace(/零分$/g,"");
rmb=rmb.replace(/元$/g,"元整");
return rmb;
}
Euro22367.28Say Euro: twenty two thousand three hundred and sixty seven and cents twenty eight only.
已经看过~~ 很有借鉴作用 谢谢
自己给结果
function englishmoney(){
var i;
var hundreds;
var tenth;
var one;
var thousand;
var million;
var billion;
var numbers;
var s
var result;
var num;
num=document.all['usd'].value;
var str;
str='000000000000000'+num.toString();
numbers='one two three four five '
+'six seven eight nine ten '
+'eleven twelve thirteen fourteen fifteen '
+'sixteen seventeen eighteen nineteen '
+'twenty thirty forty fifty '
+'sixty seventy eighty ninety ';
String.prototype.Trim = function(){return this.replace(/^\s+|\s+$/g,"");}
String.prototype.Ltrim = function(){return this.replace(/^\s+/g, "");}
String.prototype.Rtrim = function(){return this.replace(/\s+$/g, "");}
s=str.substring(str.length-15,str.length);
billion=parseInt(s.substring(0,3)); //将12位整数分成4段:十亿、百万、千、百十个
million=parseInt(s.substring(3,6));
thousand=parseInt(s.substring(6,9));
result='';
i=0;
while(i<=3){
hundreds=parseInt(s.substring(i*3,i*3+1));//百位0-9
tenth=parseInt(s.substring(i*3+1,i*3+2));
if(tenth==1){one=10+parseInt(s.substring(i*3+2,i*3+3));}
else {one=0+parseInt(s.substring(i*3+2,i*3+3));}
// one=(CASE @tenth WHEN 1 THEN 10 ELSE 0 END)+CAST(SUBSTRING(@s,@i*3+3,1) AS int)--个位0-19
if(tenth<=1){tenth=0;} // tenth=(CASE WHEN @tenth<=1 THEN 0 ELSE @tenth END)--十位0、2-9
if((i==1&&parseInt(billion)>0&&(parseInt(million)>0||parseInt(thousand)>0||parseInt(hundreds)>0))||
(i==2&&(parseInt(billion)>0||parseInt(million)>0)&&(parseInt(thousand)>0||parseInt(hundreds)>0))||
(i==3&&(parseInt(billion)>0||parseInt(million)>0||parseInt(thousand)>0)&&(parseInt(hundreds)>0)))
{result=result+', ';}//--百位不是0则每段之间加连接符, if(i==3 && (billion>0 || million>0 || thousand>0) && (hundreds==0 && (tenth>0 || one>0)))
{result=result+' and ';}//--百位是0则加连接符AND if(hundreds>0)
{result=result+numbers.substring(hundreds*10-10,hundreds*10).Rtrim()+' hundred';}
if(tenth>=2 && tenth<=9)
{
if(hundreds>0)
{result=result+' and ';}
result=result+numbers.substring(tenth*10+170,tenth*10+180).Rtrim();
} if(one>=1 && one<=19)
{
if(tenth>0)
{result=result+'-';}
else
{
if(hundreds>0){result=result+' and ';}
}
result=result+numbers.substring(one*10-10,one*10).Rtrim();
}
//alert(result);
// i=i+1;
// }
if(i==0 && parseInt(billion)>0){
result=result+' billion';}
if(i==1 && parseInt(million)>0){
result=result+' million';}
if(i==2 && parseInt(thousand)>0){
result=result+' thousand';}
i=i+1;
}
if(s.substring(13,15)!='00'){
result=result+' point ';
if(s.substring(13,14)=='0'){
result=result+'zero';}
else
{result=result+numbers.substring(parseInt(s.substring(13,14))*10-10,parseInt(s.substring(13,14))*10).Rtrim();}
if(s.substring(14,15)!='0'){
result=result+' '+numbers.substring(parseInt(s.substring(14,15))*10-10,parseInt(s.substring(14,15))*10).Rtrim();}
}
document.all['dollars'].innerText=result;
}