<script>
function regInput(reg)
{
var srcElem = event.srcElement
var oSel = document.selection.createRange()
oSel = oSel.duplicate()
oSel.text = ""
var srcRange = srcElem.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length)
event.returnvalue = reg.test(num)
}function chineseNumber(num)
{
if (isNaN(num) || num > Math.pow(10, 12)) return ""
var cn = "零壹贰叁肆伍陆柒捌玖"
var unit = new Array("拾佰仟", "分角")
var unit1= new Array("万亿", "")
var numArray = num.toString().split(".")
var start = new Array(numArray[0].length-1, 2)function toChinese(num, index)
{
var num = num.replace(/\d/g, function ($1)
{
return cn.charAt($1)+unit[index].charAt(start--%4 ? start%4 : -1)
})
return num
}for (var i=0; i<numArray.length; i++)
{
var tmp = ""
for (var j=0; j*4<numArray[i].length; j++)
{
var strIndex = numArray[i].length-(j+1)*4
var str = numArray[i].substring(strIndex, strIndex+4)
var start = i ? 2 : str.length-1
var tmp1 = toChinese(str, i)
tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "")
tmp1 = tmp1.replace(/^壹拾/, "拾")
tmp = (tmp1+unit1[i].charAt(j-1)) + tmp
}
numArray[i] = tmp 
}numArray[1] = numArray[1] ? numArray[1] : ""
numArray[0] = numArray[0] ? numArray[0]+"圆" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "")
numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1]+"整"
return numArray[0]+numArray[1]
}function aNumber(num)
{
var numArray = new Array()
var unit = "亿万圆$"
for (var i=0; i<unit.length; i++)
{
var re = eval("/"+ (numArray[i-1] ? unit.charAt(i-1) : "") +"(.*)"+unit.charAt(i)+"/")
if (num.match(re))
{
numArray[i] = num.match(re)[1].replace(/^拾/, "壹拾")
numArray[i] = numArray[i].replace(/[零壹贰叁肆伍陆柒捌玖]/g, function ($1)
{
return "零壹贰叁肆伍陆柒捌玖".indexOf($1)
})
numArray[i] = numArray[i].replace(/[分角拾佰仟]/g, function ($1)
{
return "*"+Math.pow(10, "分角 拾佰仟 ".indexOf($1)-2)+"+"
}).replace(/^\*|\+$/g, "").replace(/整/, "0")
numArray[i] = "(" + numArray[i] + ")*"+Math.ceil(Math.pow(10, (2-i)*4))
}
else numArray[i] = 0
}
return eval(numArray.join("+"))
}
</script><input id=up size=60 onkeypress="regInput(/^\d{0,12}(\.\d{0,2})?$/)"><button onclick="lw.value = chineseNumber(up.value)">转为大写</button><br>
<input id=lw size=60 value="壹仟壹佰壹拾壹圆整"><button onclick="up.value = aNumber(lw.value)">转为小写</button> 
给分

解决方案 »

  1.   

    '显示中文币值
    Function DispMoneyCHS(Money)
    '壹拾壹亿壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元玖角零分00,000,000.00 <b><font face="幼圆">收款音</font></b>
    Money=FormatNumber(trim(Money),2)
    MoneyLen=len(Money)
    TempStr=""
    '十亿位
    If MoneyLen<16 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,16),1) )&"&nbsp;<b><font face='幼圆'>拾</font></b> "
    End if
    '亿位
    If MoneyLen<14 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,14),1) )&"&nbsp;<b><font face='幼圆'>亿</font></b> "
    End if
    '千万位
    If MoneyLen<13 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,13),1) )&"&nbsp;<b><font face='幼圆'>仟</font></b> "
    End if
    '百万位
    If MoneyLen<12 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,12),1) )&"&nbsp;<b><font face='幼圆'>佰</font></b> "
    End if
    '十万位
    If MoneyLen<10 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,10),1) )&"&nbsp;<b><font face='幼圆'>拾</font></b> "
    End if
    '万位
    If MoneyLen<9 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,9),1) )&"&nbsp;<b><font face='幼圆'>万</font></b> "
    End if
    '千位
    If MoneyLen<8 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,8),1) )&"&nbsp;<b><font face='幼圆'>仟</font></b> "
    End if
    '百位
    If MoneyLen<6 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,6),1) )&"&nbsp;<b><font face='幼圆'>佰</font></b> "
    End if
    '十位
    If MoneyLen<5 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,5),1) )&"&nbsp;<b><font face='幼圆'>拾</font></b> "
    End if
    '个位
    If MoneyLen<4 then
    TempStr=TempStr &""
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,4),1) )&"&nbsp;<b><font face='幼圆'>元</font></b> "
    End if
    '角
    If right(Money,2)="00" then
    TempStr=TempStr &"整"
    Else
    TempStr=TempStr & GetNumCHS( left( right(Money,2),1) )&"&nbsp;<b><font face='幼圆'>角</font></b> "
    End if
    '分
    If right(Money,2)<>"00" then
    TempStr=TempStr & GetNumCHS( right(Money,1))&"&nbsp;<b><font face='幼圆'>分</font></b>"
    End if

    DispMoneyCHS=TempStr
    End FunctionFunction GetNumCHS(Num)

    Select Case Num
    Case "1"
    GetNumCHS="壹"
    Case "2"
    GetNumCHS="贰"
    Case "3"
    GetNumCHS="叁"
    Case "4"
    GetNumCHS="肆"
    Case "5"
    GetNumCHS="伍"
    Case "6"
    GetNumCHS="陆"
    Case "7"
    GetNumCHS="柒"
    Case "8"
    GetNumCHS="捌"
    Case "9"
    GetNumCHS="玖"
    Case "0"
    GetNumCHS="零"
    End Select

    End Function
      

  2.   

    收藏的
    <SCRIPT LANGUAGE="JavaScript">
    document.write(Transform("12000000001"))function Transform(whole) {
    //分离整数与小数
    var num;
    var dig;
    if(whole.indexOf(".") == -1) { 
    num = whole; 
    dig = ""; 
    } else { 
    num = whole.substr(0,whole.indexOf(".")); 
    dig = whole.substr( whole.indexOf(".")+1, whole.length); 
    }  //转换整数部分 
    var i=1; 
    var len = num.length;  var dw2 = new Array("","万","亿");//大单位 
    var dw1 = new Array("拾","佰","千");//小单位 
    var dw = new Array("","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用 
    var dws = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//小数部分用 
    var k1=0;//计小单位 
    var k2=0;//计大单位 
    var str="";  for(i=1;i<=len;i++) { 
    var n = num.charAt(len-i); 
    if(n=="0")  { 
    if(k1!=0) 
    str = str.substr( 1, str.length-1); 
    }  str = dw[Number(n)].concat(str);//加数字 
    if(len-i-1>=0) { //在数字范围内 
    if(k1!=3) { //加小单位 
    str = dw1[k1].concat(str); 
    k1++; 
    }else {//不加小单位,加大单位 
    k1=0; 
    var temp = str.charAt(0); 
    if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位 
    str = str.substr( 1, str.length-1); 
    str = dw2[k2].concat(str); 


    if(k1==3)//小单位到千则大单位进一 

    k2++; 
    }  }  //转换小数部分 
    var strdig=""; 
    for(i=0;i<2;i++) 

    var n = dig.charAt(i); 
    strdig += dws[Number(n)];//加数字 
    }  str += " 点 "+strdig; 
    return str; 
    }</SCRIPT>
      

  3.   

    <SCRIPT LANGUAGE="JavaScript">
    function Chinese(num)  //将阿拉伯数字翻译成中文的大写数字
    {
        if(!/^\d*(\.\d*)?$/.test(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}\\d{"+ (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("1234567812345678123456781234567812345678"));
    </script>
      

  4.   

    To: cloudchen(陈系上.net)
        alert(Transform("1234567812345678123456781234567812345678")); //你测试一下