首页 > 技术文章 > 算出费用的总金额,将人民币转为大写

javaoa 2019-07-05 09:51 原文

<!------算出费用的总金额-------->
<script type="text/javascript">
function count(o) {
var totalMoney = "0";
if (o && !isNaN(parseFloat(o.value))) {
o.value = parseFloat(o.value).toFixed(2);
}
var moneyEditIndexs = document.all("EditFieldRoeIndex");
if (moneyEditIndexs) {
if (moneyEditIndexs.length) {
for (var i = 0; i < moneyEditIndexs.length; i++) {
var editIndex = moneyEditIndexs[i].value;
if (!isNaN(document.all("EditMoneys" + editIndex).value)) {
totalMoney = numberOperateFormat(totalMoney, parseFloat(document.all("EditMoneys" + editIndex).value), "+");
} else {
alert("只能为数字");
}

}
} else {
var editIndex = moneyEditIndexs.value;
totalMoney = numberOperateFormat(totalMoney, parseFloat(document.all("EditMoneys" + editIndex).value), "+");
}
}

var moneyAddIndexs = document.all("AddFieldRoeIndex");
if (moneyAddIndexs) {
if (moneyAddIndexs.length) {
for (var i = 0; i < moneyAddIndexs.length; i++) {
var addIndex = moneyAddIndexs[i].value;
if (!isNaN(document.all("AddMoneys" + addIndex).value)) {
totalMoney = numberOperateFormat(totalMoney, document.all("AddMoneys" + addIndex).value, "+");
} else {
alert("只能为数字");
}
}
} else {
var addIndex = moneyAddIndexs.value;
if (!isNaN(document.all("AddMoneys" + addIndex).value)) {
totalMoney = numberOperateFormat(totalMoney, document.all("AddMoneys" + addIndex).value, "+");
} else {
alert("只能为数字");
}
}
}
document.all.Summation.value = totalMoney;
nst();
}


var stmp = "";

function nst() {
if (document.all.Summation.value == stmp)
return;
//利用replace()方法对用户输入的金额进行判断
var ms = document.all.Summation.value.replace(/[^\d\.]/g, "").replace(/(\.\d{2}).+$/, "$1").replace(/^0+([1-9])/, "$1").replace(/^0+$/, "0");
document.all.Daxue_money.value = number2num1(ms - 0);
}

function number2num1(strg) {
var number = Math.round(strg * 100) / 100;
number = number.toString(10).split('.');
var a = number[0];
if (a.length > 12)
return "数值超出范围!支持的最大数值为 999999999999.99";
var e = "零壹贰叁肆伍陆柒捌玖";
var num1 = "";
var len = a.length - 1;

for (var i = 0; i <= len; i++)
num1 += e.charAt(parseInt(a.charAt(i))) + [["圆", "万", "亿"][Math.floor((len - i) / 4)], "拾", "佰", "仟"][(len - i) % 4];
if (number.length == 2 && number[1] != "") {
var a = number[1];
for (var i = 0; i < a.length; i++)
num1 += e.charAt(parseInt(a.charAt(i))) + ["角", "分"][i];
}
num1 = num1.replace(/零佰|零拾|零仟|零角/g, "零");
num1 = num1.replace(/零{2,}/g, "零");
num1 = num1.replace(/零(?=圆|万|亿)/g, "");
num1 = num1.replace(/亿万/, "亿");
num1 = num1.replace(/^圆零?/, "");
if (num1 != "" && !/分$/.test(num1))
num1 += "整";
return num1;
}

var addFieldRoeIndex = 5;

function addFieldRow() {
var row = designTable.insertRow();
addFieldRoeIndex++;
//费用名称
var sel = "";
<%
ResultSet rst=conn.executeQuery("SELECT * FROM BIZX_Expenses_fyName");
while(rst.next()){%>
sel += "<option value='<%=rst.getString("fyname")%>'><%=rst.getString("fyname")%></option>";
<%}%>
/*    //把下拉框的值赋予给文本框中
//var selHtml="<select id='selectindex' onchange=\"document.all('AddCost"+addFieldRoeIndex+"').value=this.options[selectedIndex].value;\"><option value=''>-----&nbsp;&nbsp;</option>"+sel+"</select>";*/

row.insertCell().innerHTML = "<input type=hidden name='AddFieldRoeIndex' value='" + addFieldRoeIndex + "'><select id='selectindex' name='AddCost" + addFieldRoeIndex + "' style='width:100%';><option value=''>-----</option>" + sel + "</select>"

//摘要
row.insertCell().innerHTML = "<input type=text name='AddSummary" + addFieldRoeIndex + "' class='noBorder' style='width:100%; HEIGHT: 23px'>";
//金额
row.insertCell().innerHTML = "<input type=text name='AddMoneys" + addFieldRoeIndex + "' class='noBorder' style='width:87%; HEIGHT: 23px' onblur='count(this)'><a href=# onclick='deleteFieldRow(getParent(this, \"TR\"));return false;'>删除</a>";
//操作按钮
//row.insertCell().innerHTML = "<a href=# onclick='deleteFieldRow(getParent(this, \"TR\"));return false;'>删除</a>";
}

//删除一行,不能删除非用户新增的行
function deleteFieldRow(row) {
if (row == null) return;
designTable.deleteRow(row.rowIndex);
}

</script>

 

推荐阅读