編程(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代碼 進行本實例源碼下載
使用編程語言寫的程序,由于每條指令都對應計算機一個特定的基本動作,所以程序占用內存少、執行效率高。 |