自动将输入的金额转换成大写
如输入 123转换为 壹百贰拾叁元整
输入123.12 转换为 壹百贰拾叁元壹角贰分
function Cash(num) {
if (!/^\d+\.{0,1}\d{0,2}$/.test(num)) {
alert('输入格式有误');
return;
}
//单位
var dw = ['元','万','亿','兆'];
//单位描述
var dw_ms=['拾','佰','仟'];
var xs_dw = ['分','角'];
//var Dw = ['分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','兆','拾','佰','仟'];
var number = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
var sRusult = '';
//整数
var zs = Math.floor(num);
//小数
var xs = 0;
//后缀
var hz = '';
//前缀
var qz = '';
//处理小数
if(zs!=num){
xs = Math.floor((num-zs)*100);
for(i = 0; i<2; i++){
var x = xs%10;
if(x>=0){
hz=number[x]+xs_dw[i]+hz;
}
xs=Math.floor(xs/10);
}
}else{
hz = '整';
}
//标记是否输出0
var flag_0 = 0;
//标记最后一位是否为0
var is_bottom=true;
//标记当前单位
var flag_dw = 0;
//标记当前单位描述
var flag_dwms=0;
//标记当前第几位
var index = 0;
//标记输入单位还是单位描述 true 单位
var flag_status = false;
// 处理整数
while(zs>0){
//末尾数
var mw = zs%10;
zs = Math.floor(zs/10);
if(mw == 0 && is_bottom){
flag_0++;
qz='元';
}else if(is_bottom && mw!=0){
is_bottom=false;
flag_0=0;
}else if(mw==0 && !is_bottom){
flag_0++;
}else if(mw!=0){
flag_0 = 0;
}
if(is_bottom||flag_0>1){
index++;
if(!flag_status){
flag_status = true;
}else{
flag_dwms++;
}
if(index%4==0){
flag_dw++;
flag_dwms=0;
flag_status=false;
}
continue;
}
//判断单位
if(!flag_status){
qz = dw[flag_dw]+qz;
flag_status = true;
}else {
qz = dw_ms[flag_dwms]+qz;
flag_dwms++;
}
index++;
//如果到输出单位的位置,重置标记
if(index%4==0){
flag_dw++;
flag_dwms=0;
flag_status=false;
}
qz=number[mw]+qz;
}
sRusult= qz+hz;
//形成的金额数据
alert(sRusult);
document.getElementById("wtd_hjdx").value=sRusult;
}