日期:2014-05-16 浏览次数:20548 次
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function test(cash) {
var num = cash;
//将cash字符串以0开头的部分删除并赋值给num,传入的cash不能是以0开头的数字,否则会自动转换为八进制数
for (var i=0; i < cash.length; i++){
if (cash.substr(i,1) == 0)
num = cash.substring(i+1);
else
break;
}
var strOutput = "";
var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
num += "00";
var intPos = num.indexOf('.');
if (intPos >= 0)
//消除num中的'.',如果没有则添加00到末尾
num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
if(num.length > strUnit.length){
return "输入的金额超过万亿,不能转换";
}
//strUnit字符串同num数字金额以右部对齐时一一对应
strUnit = strUnit.substr(strUnit.length - num.length);
//逐个转换数字为大写并赋予相对应的单位,即对应在strUnit中的单位,,需要注意的是replace第二个参数$1,为替代第一个小括号里的变量,这一点同Perl里面的=~ s /(replace code)/$1/差不多,具体查询Perl匹配模式的替代
for (var i=0; i < num.length; i++)
strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1);
return strOutput.replace(/零[仟佰拾角分]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿万元])/g, '$1').replace(/亿万/, '亿').replace(/([元角])零/, '$1整').replace(/^([元整零])/, "零元");
};
</script>
</head>
<body>
<input type="button" name="test1" value="Test"
onclick="alert(test('999010256300.30'));"></input>
</body>
</html>