代码错误有三个地方:
1 var ch3 应改为 var ch3 = "",就是定义 ch3 时,定义为一个空字符串
2 if 条件语句最后 else 里边 ch2_1 += '00' 应改为 ch2_1 = ch2 + '00'
3 for 循环里边 ch3 = ... 应改为 ch3 += ... '...'表示的是后面那一串
修改后的代码是
var ch = ["千", "百", "拾", "亿", "千", "百", "拾", "万", "千", "百", "拾", "元", "角", "分"];
var ch1 = '零壹贰叁肆伍陆柒捌玖';
var ch2_1;
var ch3 = '';
var ch2 = document.getElementById("a").value;
var a = /(\.[0-9])$/;
var a1 = /(\.[0-9][0-9])$/;
if (a1.test(ch2)) {
ch2_1 = ch2.replace(/\./, '');
} else if (a.test(ch2)) {
ch2_1 = ch2.replace(/\./, '');
ch2_1 += '0';
} else {
ch2_1 = ch2 + '00';
}
var ch2_2 = ch2_1.length;
var ch_1 = ch.slice(-ch2_2);
for (var ad = 0; ad < ch2_1.length; ad++) {
ch3 += ch1.charAt(parseInt(ch2_1.substr(ad, 1))) + ch_1[ad];
}
var ch4 = ch3.replace(/零(千|百|拾|角)/g, '零');
ch4 = ch3.replace(/零角零分/, '整');
alert('中文货币', '+ch4');
------------------------
代码命名可以规范一下,20几行代码,出现了10个变量,正则
var a = /(\.[0-9])$/; ---> var a = /\.\d$/;
var a1 = /(\.[0-9][0-9])$/; ----> var a1 = /\.\d{2}$/;
能简单就简单呗。
追问谢谢