编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。 【实例名称】 小写金额转为大写金额JS代码怎么写 【实例描述】 大写金额是我国特有的一种金额表现形式。本例学习如何将阿拉伯数字形式的金额转换为大写金额。 【实例代码】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页-本站(www.xue51.com)</title>
</head>
<body>
<script language="JavaScript">
function daxie()
{
//定义大写数组
this.values = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
this.digits = ["", "拾", "佰", "仟"];
} function daxie.prototype.getDaXie(money)
{
if(isNaN(money)) return "";
//如果不是数值型,直接返回空
var number = Math.round(money*100)/100;
//取数值的整数
number = number.toString(10).split('.');
//整数和小数分开
var moneyInt = number[0];
//整数部分
var len = moneyInt.length;
//整数的长度
if (len > 12)
//长度如果超出范围
return "数值超出范围!支持的最大数为 999999999999.99!";
var returnValue = this.millonTrans(moneyInt.slice(-4));
if (len > 4)
//多于万位
returnValue = this.millonTrans(moneyInt.slice(-8,-4))
+ (moneyInt.slice(-8,-4)!="0000"?"万":"") + returnValue;
if (len > 8)
//多于亿位
returnValue = this.millonTrans(moneyInt.slice(-12,-8))
+ "亿" + returnValue;
if(returnValue!="")
returnValue += "圆";
//添加最后一个字符
if(number.length==2)
//是否是带小数的金额
{
var cok = number[1].split('');
if(returnValue!="" || cok[0]!="0")
returnValue += this.values[parseInt(cok[0])] +
(cok[0]!="0"?"角":"");//十位数显示角
if(cok.length>=2)
returnValue += this.values[parseInt(cok[1])] +
"分"; //个位数显示分
}
if(returnValue!="" && !/分$/.test(returnValue))
//使用正则判断是否有小数
returnValue += "整";
return returnValue;
} function daxie.prototype.millonTrans(strTemp)
{
var money = strTemp.split('');
//将金额转换为数组
var mLength = money.length-1;
//金额的长度
var returnValue = "";
for (var i=0; i<=mLength; i++)
//遍历每个元素
returnValue += this.values[parseInt(money[i])] +
(money[i]!='0'?this.digits[mLength-i]:"");
returnValue = returnValue.replace(/零+$/, "").
replace(/零{2,}/, "零");//返回转换后的数值
return returnValue;
} var stmp = "";
var daXieM = new daxie();
function strTrans(strT)
{
if(strT.value==stmp) return;
var ms = strT.value.replace(/[^\d\.]/g,"").
replace(/(\.\d{2}).+$/,"$1");//验证用户的输入
var txt = ms.split(".");
//分割成数组
while(/\d{4}(,|$)/.test(txt[0]))
txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");
//科学计数法表示形式
strT.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
daxieTxt.value = daXieM.getDaXie(parseFloat(ms));
//显示大写
}
</script>
小写金额:<input type="text" name="xiaoxieTxt"
onkeyup="strTrans(this)"><br>
大写金额:<input type="text" name="daxieTxt"
size=60 readonly></body>
</html>
【运行效果】
 【难点剖析】 本例使用“getDaXie”和“millonTrans”方法实现数值型数据的判断,包括如何判断万位数、亿位数等。代码中多次使用正则表达式实现字符的搜索和替换,有关正则表达式的使用,请参考详细资料。 【源码下载】 为了JS代码的准确性,请点击:小写金额转为大写金额JS代码 进行本实例源码下载
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 |