金額與數字轉化常用實用幾個JS方法

//在引用頁面,可以採用document.forms[0].field1.value.trim()引用去空格
String.prototype.trim = function(){
    return this.replace(/(^/s*)|(/s*$)/g, "");
}


//將1,234,567.00轉換爲1234567.00
function moneyToNumFiled(obj) {
    var num=obj.value.trim();
    var ss=num.toString();
 if(ss.length==0){
   return "";
 } 
    num=new Number(ss.replace(/,/g, ""));
 if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
   alert("必須是數字型,切小數位最多保留兩位");
   obj.value="";
   obj.focus();
   return ;
    }
 obj.value=num;
   
}


//將1,234,567.00轉換爲1234567.00
function moneyToNumValue(val) {
    var num=val.trim();
    var ss=num.toString();
 if(ss.length==0){
   return "0";
 } 
    return ss.replace(/,/g, "");
 
}

//用於頁面控制
//將1234567.00轉換爲1,234,567.00
function numToMoneyField(obj) {
  
    var ss=obj.value.toString().trim();
 if(ss.length==0){
   return "";
 } 
    var num=new Number(ss.replace(/,/g, ""));
 if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
  
   alert("必須是數字型,切小數位最多保留兩位");
   obj.value="";
   obj.focus();
   return;
    }
 
 if(num<0){
  obj.value = '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);
 }else{
     obj.value = outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);
 }
}

//將1234567.00轉換爲1,234,567.00
function numToMoneyValue(val) {
  
    var ss=val.toString().trim();
 if(ss.length==0){
   return "";
 } 
    var num=new Number(ss.replace(/,/g, ""));
 if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
   alert("必須是數字型,切小數位最多保留兩位");  
   return "";
    }
 
 if(num<0){
  return '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);
 }else{
     return outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);
 }
}

function Chinese(num){   //如輸入123.45可得到 壹百貳拾叄元肆角伍分
    var AA = new Array("零","壹","貳","叄","肆","伍","陸","柒","捌","玖");
    var BB = new Array("","拾","百","千","萬","億","","");
    var CC = new Array("角","分","");
   
    var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";

    for(var i=a[0].length-1; i>=0; i--){
        switch(k){
            case 0 : re = BB[7] + re; break;
            case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0]))
                     re = BB[4] + re; break;
            case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
        }
        if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
        if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
    }
 if(re.trim().length>0){
   re+="元";
 }
   
    if(a.length>1){ //加上小數部分(如果有小數部分)
        re += BB[6];
        for(var i=0; i1) break;
          re += AA[a[1].charAt(i)] + CC[i];
        }
    }

    return re;
}
//格式化輸入數字,並保留指定位小數
//amount爲原數字,_pow_爲需要保留小數位數
function powAmount(amount,_pow_) {
  var amount_bak=amount;
  var base=10;
  if(isNaN(amount)){
   alert(amount+'必須爲數字');
   return;
  }
  if(isNaN(_pow_)){
   alert(_pow_+'必須爲數字');
   return;
  }
   amount = Math.round( ( amount - Math.floor(amount) ) *Math.pow(base,_pow_));
   amount=amount<10 ? '.0' + amount : '.' + amount
   amount=Math.floor(amount_bak)+amount;
   return amount;
}<pre></pre>
<pre></pre>
<p>本文出自:<strong><a href="
http://www.fenglibin.com">馮立彬的博客</a></strong></p>
<p><br>
</p>
<p><br>
</p>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章