<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>
给分
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>
给分
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) )&" <b><font face='幼圆'>拾</font></b> "
End if
'亿位
If MoneyLen<14 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,14),1) )&" <b><font face='幼圆'>亿</font></b> "
End if
'千万位
If MoneyLen<13 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,13),1) )&" <b><font face='幼圆'>仟</font></b> "
End if
'百万位
If MoneyLen<12 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,12),1) )&" <b><font face='幼圆'>佰</font></b> "
End if
'十万位
If MoneyLen<10 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,10),1) )&" <b><font face='幼圆'>拾</font></b> "
End if
'万位
If MoneyLen<9 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,9),1) )&" <b><font face='幼圆'>万</font></b> "
End if
'千位
If MoneyLen<8 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,8),1) )&" <b><font face='幼圆'>仟</font></b> "
End if
'百位
If MoneyLen<6 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,6),1) )&" <b><font face='幼圆'>佰</font></b> "
End if
'十位
If MoneyLen<5 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,5),1) )&" <b><font face='幼圆'>拾</font></b> "
End if
'个位
If MoneyLen<4 then
TempStr=TempStr &""
Else
TempStr=TempStr & GetNumCHS( left( right(Money,4),1) )&" <b><font face='幼圆'>元</font></b> "
End if
'角
If right(Money,2)="00" then
TempStr=TempStr &"整"
Else
TempStr=TempStr & GetNumCHS( left( right(Money,2),1) )&" <b><font face='幼圆'>角</font></b> "
End if
'分
If right(Money,2)<>"00" then
TempStr=TempStr & GetNumCHS( right(Money,1))&" <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
<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>
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>
alert(Transform("1234567812345678123456781234567812345678")); //你测试一下