好玩的vbs特色代码第2/6页

 更新时间:2007年03月08日 00:00:00   作者:  


vbs的字符串运算也非常方便,下面是两种脚本转化人民币为汉字的对比
<SCRIPT LANGUAGE=vbs>
N=34334100000.0502'假设N不是负数,末尾不带0
Snz=split(cstr(N),".")(0)'整数部分转字串
A=array( "零","壹","贰","叁","肆","伍","陆","柒","捌","玖")
B=array("元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万")
C=array("角","分","厘","毫")
WeiSz=len(cstr(int(Snz)))'整数位数
for i=1 to WeiSz       
              JieG=JieG & A(cint(mid(Snz,i,1)))        
              if cint(mid(Snz,i,1))<>0 or _
              (WeiSz-i)=0 or (WeiSz-i)=4 or _
              (WeiSz-i)=8 or (WeiSz-i)=12  then JieG=JieG & B(WeiSz-i) 
JieG=replace(JieG,"零零","")
next
JieG=replace(JieG,"零","")
if N<>int(N) then 
       JieG=JieG & "零"
       Snx=split(cstr(N),".")(1)'小数部分转字串
       WeiSx=len(cstr(int(Snx)))'小数位数
       for i=1 to WeiSx       
              if cint(mid(Snx,i,1))=0 then i=i+1              
              JieG=JieG & A(cint(mid(Snx,i,1))) & C(i-1) 
       next
end if
msgbox JieG
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
function Chinese(num)  //将阿拉伯数字翻译成中文的大写数字
{
    if(!num)
{alert("Number is wrong!"); return "Number is wrong!";}
    var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
    var BB = new Array("","拾","佰","仟","萬","億","点","");

    var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
    for(var i=a[0].length-1; i>=0; i--)
    {
        switch(k)
        {
            case 0 : re = BB[7] + re; break;
            case 4 : if(!new RegExp("0{4}\{"+ (a[0].length-i-1) +"}$").test(a[0]))
                     re = BB[4] + re; break;
            case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
        }
        if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
        if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
    }
    if(a.length>1) //加上小数部分(如果有小数部分)
    {
        re += BB[6];
        for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
    }
    return re;
}
alert(Chinese("34334100000.0502"));
</script>

数字转化为汉字还有一个技巧,试验一下:
<SCRIPT LANGUAGE=vbs>
for i=1 to 10
   alert left(MonthName(i,True),1)
next
</SCRIPT>

 是日期转汉字:

<SCRIPT LANGUAGE=vbs>

Function D(x)
 if int(split(x,"-")(2)/10)=0 then D=D & F(split(x,"-")(2)) else _
 if split(x,"-")(2) mod 10 =0 then D=D & F(int(split(x,"-")(2)/10)) & "十" else _
 D=D & F(int(split(x,"-")(2)/10)) & "十" & F(split(x,"-")(2) mod 10)
 D=F(split(x,"-")(0)) & "年" & MonthName(split(x,"-")(1),True) & replace(D,"一十","十") & "日" 
end Function

Function F(x)
 for i=1 to len(x)
  if mid(x,i,1)="0" then F=F & "零" else F=F & left(MonthName(mid(x,i,1),True),1)
 next
end Function

msgbox D(date)

</SCRIPT>

相关文章

最新评论