|           编程(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代码 进行本实例源码下载  
 使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 
 |